Connecting Tech Pros Worldwide Forums | Help | Site Map

GENERAL FUNCTIONS

amitpatel66's Avatar
Moderator
 
Join Date: Mar 2007
Location: Hyderabad, India
Posts: 2,192
#1   Sep 17 '07
GENERAL Functions:

NVL(column_name, m) - Returns m if column_name value is NULL
Expand|Select|Wrap|Line Numbers
  1. SELECT NVL(empno,0) FROM emp -- returns 0 if empno is NULL
  2.  
NVL2(column_name,c1,c2) - Returns c1 if column_name IS NOT NULL and c2 if column_name IS NULL
Expand|Select|Wrap|Line Numbers
  1. SELECT NVL2(empno,empno,'NO EID') from dual -- returns empno if empno IS NOT NULL else returns 'NO EID'
  2.  
NULLIF(column_name,value) - Returns NULL, IF column_name = value
Expand|Select|Wrap|Line Numbers
  1. SELECT NULLIF(empno,1) FROM emp -- returns NULL IF empno = 1
  2.  
COALESCE(column1,column2,column3,column4) - Returns columns2 if column1 IS NULL, else returns column3 if column2 is also NULL and so on. All the columns should be of same data type
Expand|Select|Wrap|Line Numbers
  1. SELECT COALESCE(ename,first_name,last_name,'NO NAME') from emp -- returns first_name IF ename IS NULL, IF first_name IS also NULL, then returns last_name, IF last_name IS also NULL, then returns 'NO NAME'
  2.  
DECODE(column_name,val1,ret_val,val2,ret_val2,ret_ val3) - Returns ret_val1 IF column_name = val1 ELSE Returns ret_Val2 IF column_name = val2 ELSE Returns ret_val3
Expand|Select|Wrap|Line Numbers
  1. SELECT DECODE(empno,1,'PM',2,'BM','EMP') FROM emp -- returns 'PM' if empno = 1 ELSE IF empno = 2 then returns 'BM' ELSE returns 'EMP'
  2.  
CASE(column_name) - CASE can be used in PLSQL as well as SQL statement.

Expand|Select|Wrap|Line Numbers
  1. SELECT empno,ename,
  2. (CASE WHEN (empno = 1) THEN 'PM'
  3.           WHEN (empno = 2) THEN 'BM'
  4.           ELSE 'EMP' END) Position
  5. FROM emp
  6.  



Closed Thread