sql >> Databáze >  >> RDS >> Oracle

Funkce LN() v Oracle

V Oracle, LN() Funkce vrací přirozený logaritmus svého argumentu, kde je argument větší než 0 .

Jinými slovy, vrátí základ-e logaritmus jeho argumentu.

Číslo e , také známé jako Eulerovo číslo, je matematická konstanta přibližně rovna 2,71828.

Syntaxe

Syntaxe vypadá takto:

LN(n) 

Kde n je jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.

Příklad

Zde je příklad:

SELECT LN(73)
FROM DUAL; 

Výsledek:

 LN(73) __________________________________________ 4.2904594411483911290921088574385425709

Když projedeme e, dostaneme toto :

SELECT LN(2.718281828459045235360287471352662497757)
FROM DUAL; 

Výsledek:

 LN(2,718281828459045235360287471352662497757) ___________________________________________1
 V tomto příkladu je však rozdíl v počtu zlomkových míst. Když odstraním poslední číslici, stane se toto:

SELECT LN(2.71828182845904523536028747135266249775)
FROM DUAL; 

Výsledek:

 LN(2,71828182845904523536028747135266249775) ____________________________________________9999999999999999999999999999999999 

Záporné hodnoty

Záporné hodnoty vedou k chybě „mimo rozsah“:

SELECT LN(-5.490)
FROM DUAL; 

Výsledek:

Chyba začínající na řádku:1 v příkazu -SELECT LN(-5.490)FROM DUALEChybová zpráva -ORA-01428:argument '-5.49' je mimo rozsah

Nula

Předání 0 také vede k chybě „mimo rozsah“:

SELECT LN(0)
FROM DUAL; 

Výsledek:

Chyba začínající na řádku:1 v příkazu -SELECT LN(0)FROM DUALEHlášení o chybě -ORA-01428:argument '0' je mimo rozsah

Výrazy

Argument může obsahovat výrazy jako tento:

SELECT LN(2 * 3)
FROM DUAL; 

Výsledek:

 LN(2*3) ___________________________________________ 1,79175946922805500081247735838070227272

Nečíselné argumenty

Argumentem může být jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.

Zde je příklad toho, co se stane, když argument nesplňuje tato kritéria:

SELECT LN('Euler')
FROM DUAL; 

Výsledek:

Chyba začínající na řádku:1 v příkazu -SELECT LN('Euler')FROM DUALEHlášení o chybě -ORA-01722:neplatné číslo

Nulové argumenty

LN() vrátí null pokud je argument null :

SET NULL 'null';

SELECT LN(null)
FROM DUAL; 

Výsledek:

 LN(NULL) ___________ null 

Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo, kdykoli se v důsledku příkazu SQL SELECT objeví hodnota null. prohlášení.

Můžete však použít SET NULL určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null by měl být vrácen.

Chybí argumenty

Volání LN() s nesprávným počtem argumentů nebo bez jakýchkoli argumentů vede k chybě:

SELECT LN()
FROM DUAL; 

Výsledek:

Chyba začínající na řádku:1 v příkazu -SELECT LN()FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"*Příčina:*Akce:

A:

SELECT LN(10, 2)
FROM DUAL; 

Výsledek:

Chyba začínající na řádku:1 v příkazu -SELECT LN(10, 2)FROM DUALEchyba na příkazovém řádku:1 Sloupec:8Hlášení o chybě -Chyba SQL:ORA-00909:neplatný počet argumentů00909. 00000 - "neplatný počet argumentů"*Příčina:*Akce:

  1. Snažím se zkopírovat soubor, ale zobrazuje se chybová zpráva

  2. Tipy pro poskytování výkonu databáze MySQL – část druhá

  3. Failover &Failback pro PostgreSQL v Microsoft Azure

  4. Jak mohu (nebo mohu) SELECT DISTINCT na více sloupcích?