Oracle
 sql >> база данни >  >> RDS >> Oracle

NVL2 функция в Oracle

Този урок за SQL предоставя обяснения, примери за функцията NVL2 в Oracle

Функцията NVL2 е функция за влагане. Тя проверява първото впечатление, ако първото впечатление не е нула, тогава функцията NVL2 връща втория израз. ако първото впечатление е нула, то връща третия израз.

израз1 :това е изходните стойности или израз, който може да съдържа null. Можете да предоставите име на колона, функция на името на колоната
expr2 :Това е стойността на израза, който се връща, ако expr1 не е null
expr3 :Това е стойността на израза, който се връща, ако expr1 е нула

Аргументът expr1 може да има произволен тип данни. Аргументите expr2 и expr3 могат да имат всякакви типове данни освен LONG.

SQL> select nvl2(user_name,1,2) from apps.fnd_user where rownum < 5;

NVL2(USER_NAME,1,2)
-------------------
1
1
1
1

SQL> select nvl2(end_date,1,2) from apps.fnd_user where rownum < 5;

NVL2(END_DATE,1,2)
------------------
1
2
1
1

Ако типовете данни на expr2 и expr3 са различни:

Ако expr2 е символни данни, тогава Oracle Database преобразува expr3 в типа данни на expr2, преди да ги сравни, освен ако expr3 е нулева константа. В този случай не е необходимо преобразуване на тип данни. Oracle връща VARCHAR2 в набора от знаци на expr2.

Ако expr2 е числов, тогава Oracle определя кой аргумент има най-висок числов приоритет, имплицитно преобразува другия аргумент в този тип данни и връща този тип данни.

Типът данни на типа на връщането винаги е същият като типа на данните на expr2, освен ако expr2 не е символни данни, като връщаната стойност винаги е varchar2

SQL> select nvl2(end_date,1,'a') from apps.fnd_user where rownum < 5;
select nvl2(end_date,1,'a') from apps.fnd_user where rownum < 5
*
ERROR at line 1:
ORA-01722: invalid number

SQL> select nvl2(end_date,'a',1) from apps.fnd_user where rownum < 5;

N
-
a
1
a
a

Употреба 

SELECT last_name, salary, NVL2(commission_pct,
salary + (salary * commission_pct), salary) income
FROM employees WHERE last_name like 'B%'
ORDER BY last_name;

Сродни статии

Едноредови функции в Sql
функция NULLIF в Oracle
Изявление за актуализиране в oracle
обединяваща функция в Oracle
функция Oracle LISTAGG
функции за дата на oracle


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ATAN() Функция в Oracle

  2. Как мога да получа броя на дните между 2 дати в Oracle 11g?

  3. Използвайки Oracle SQL, как един ден извежда номер на седмицата и ден от седмицата?

  4. Как да разрешите ORA-06512 на ред номер

  5. Коригиране на грешка „ORA-01789:блокът на заявката има неправилен брой колони с резултати“