Functions
FUNCTIONS
Functions can be categorized as follows.
Ø Single row functions
Ø Group functions
SINGLE ROW FUNCTIONS
Single row functions can be categorized into five. These will be applied for each row and produces individual output for each row.
Ø Numeric functions
Ø String functions
Ø Date functions
Ø Miscellaneous functions
Ø Conversion functions
NUMERIC FUNCTIONS
Ø Abs
Ø Sign
Ø Sqrt
Ø Mod
Ø Nvl
Ø Power
Ø Exp
Ø Ln
Ø Log
Ø Ceil
Ø Floor
Ø Round
Ø Trunk
Ø Bitand
Ø Greatest
Ø Least
Ø Coalesce
a) ABS
Absolute value is the measure of the magnitude of value.
Absolute value is always a positive number.
Syntax: abs (value)
Ex:
SQL> select abs(5), abs(-5), abs(0), abs(null) from dual;
ABS(5) ABS(-5) ABS(0) ABS(NULL)
---------- ---------- ---------- -------------
5 -5 0
b) SIGN
Sign gives the sign of a value.
Syntax: sign (value)
Ex:
SQL> select sign(5), sign(-5), sign(0), sign(null) from dual;
SIGN(5) SIGN(-5) SIGN(0) SIGN(NULL)
---------- ---------- ---------- --------------
1 -1 0
c) SQRT
This will give the square root of the given value.
Syntax: sqrt (value) -- here value must be positive.
Ex:
SQL> select sqrt(4), sqrt(0), sqrt(null), sqrt(1) from dual;
SQRT(4) SQRT(0) SQRT(NULL) SQRT(1)
---------- ---------- --------------- ----------
2 0 1
d) MOD
This will give the remainder.
Syntax: mod (value, divisor)
Ex:
SQL> select mod(7,4), mod(1,5), mod(null,null), mod(0,0), mod(-7,4) from dual;
MOD(7,4) MOD(1,5) MOD(NULL,NULL) MOD(0,0) MOD(-7,4)
------------ ---------- --------------------- ----------- -------------
3 1 0 -3
e) NVL
This will substitutes the specified value in the place of null values.
Syntax: nvl (null_col, replacement_value)
Ex:
SQL> select * from student; -- here for 3rd row marks value is null
NO NAME MARKS
--- ------- ---------
1 a 100
2 b 200
3 c
SQL> select no, name, nvl(marks,300) from student;
NO NAME NVL(MARKS,300)
--- ------- ---------------------
1 a 100
2 b 200
3 c 300
SQL> select nvl(1,2), nvl(2,3), nvl(4,3), nvl(5,4) from dual;
NVL(1,2) NVL(2,3) NVL(4,3) NVL(5,4)
---------- ---------- ---------- ----------
1 2 4 5
SQL> select nvl(0,0), nvl(1,1), nvl(null,null), nvl(4,4) from dual;
NVL(0,0) NVL(1,1) NVL(null,null) NVL(4,4)
---------- ---------- ----------------- ----------
0 1 4
f) POWER
Power is the ability to raise a value to a given exponent.
Syntax: power (value, exponent)
Ex:
SQL> select power(2,5), power(0,0), power(1,1), power(null,null), power(2,-5) from
dual;
POWER(2,5) POWER(0,0) POWER(1,1) POWER(NULL,NULL) POWER(2,-5)
-------------- -------------- ----- --------- ----------------------- ---------------
32 1 1 .03125
g) EXP
This will raise e value to the give power.
Syntax: exp (value)
Ex:
SQL> select exp(1), exp(2), exp(0), exp(null), exp(-2) from dual;
EXP(1) EXP(2) EXP(0) EXP(NULL) EXP(-2)
-------- --------- -------- ------------- ----------
2.71828183 7.3890561 1 .135335283
h) LN
This is based on natural or base e logarithm.
Syntax: ln (value) -- here value must be greater than zero which is positive only.
Ex:
SQL> select ln(1), ln(2), ln(null) from dual;
LN(1) LN(2) LN(NULL)
------- ------- ------------
0 .693147181
Ln and Exp are reciprocal to each other.
EXP (3) = 20.0855369
LN (20.0855369) = 3
i) LOG
This is based on 10 based logarithm.
Syntax: log (10, value) -- here value must be greater than zero which is positive only.
Ex:
SQL> select log(10,100), log(10,2), log(10,1), log(10,null) from dual;
LOG(10,100) LOG(10,2) LOG(10,1) LOG(10,NULL)
--------------- ----------- ------------
l) ROUND
This will rounds numbers to a given number of digits of precision.
Syntax: round (value, precision)
Ex:
SQL> select round(123.2345), round(123.2345,2), round(123.2354,2) from dual;
ROUND(123.2345) ROUND(123.2345,0) ROUND(123.2345,2) ROUND(123.2354,2)
--------------------- ------------------------ ----------------------- -----------------------
123 123 123.23 123.24
SQL> select round(123.2345,-1), round(123.2345,-2), round(123.2345,-3),
round(123.2345,-4) from dual;
ROUND(123.2345,-1) ROUND(123.2345,-2) ROUND(123.2345,-3) ROUND(123.2345,-4)
------------------------ ------------------------- ------------------------ ------------------------
120 100 0 0
SQL> select round(123,0), round(123,1), round(123,2) from dual;
ROUND(123,0) ROUND(123,1) ROUND(123,2)
----------------- ----------------- ----------------
123 123 123
SQL> select round(-123,0), round(-123,1), round(-123,2) from dual;
ROUND(-123,0) ROUND(-123,1) ROUND(-123,2)
------------------ ----------------- -------------------
-123 -123 -123
SQL> select round(123,-1), round(123,-2), round(123,-3), round(-123,-1), round(-123,-
2), round(-123,-3) from dual;
ROUND(123,-1) ROUND(123,-2) ROUND(123,-3) ROUND(-123,-1) ROUND(-123,-2)
ROUND(-123,-3)
------------- ------------- ------------- -------------- -------------- --------------
120 100 0 -120 -100 0
SQL> select round(null,null), round(0,0), round(1,1), round(-1,-1), round(-2,-2) from
dual;
ROUND(NULL,NULL) ROUND(0,0) ROUND(1,1) ROUND(-1,-1) ROUND(-2,-2)
----------------------- -------------- -------------- ---------------- ----------------
0 1 0 0
m) TRUNC
This will truncates or chops off digits of precision from a number.
Syntax: trunc (value, precision)
Ex:
SQL> select trunc(123.2345), trunc(123.2345,2), trunc(123.2354,2) from dual;
TRUNC(123.2345) TRUNC(123.2345,2) TRUNC(123.2354,2)
--------------------- ----------------------- -----------------------
123 123.23 123.23
SQL> select trunc(123.2345,-1), trunc(123.2345,-2), trunc(123.2345,-3),
trunc(123.2345,-4) from dual;
TRUNC(123.2345,-1) TRUNC(123.2345,-2) TRUNC(123.2345,-3) TRUNC(123.2345,-4)
------------------------ ------------------------ ----------------------- ------------------------
120 100 0 0
SQL> select trunc(123,0), trunc(123,1), trunc(123,2) from dual;
TRUNC(123,0) TRUNC(123,1) TRUNC(123,2)
---------------- ---------------- -----------------
123 123 123
SQL> select trunc(-123,0), trunc(-123,1), trunc(-123,2) from dual;
TRUNC(-123,0) TRUNC(-123,1) TRUNC(-123,2)
----------------- ----------------- -----------------
-123 -123 -123
SQL> select trunc(123,-1), trunc(123,-2), trunc(123,-3), trunc(-123,-1), trunc(-123,2),
trunc(-123,-3) from dual;
TRUNC(123,-1) TRUNC(123,-2) TRUNC(123,-3) TRUNC(-123,-1) TRUNC(-123,2) TRUNC(-
123,-3)
------------- ------------- ------------- -------------- ------------- --------------
120 100 0 -120 -123 0
SQL> select trunc(null,null), trunc(0,0), trunc(1,1), trunc(-1,-1), trunc(-2,-2) from dual;
TRUNC(NULL,NULL) TRUNC(0,0) TRUNC(1,1) TRUNC(-1,-1) TRUNC(-2,-2)
----------------------- ------------- ------------- --------------- ----------------
0 1 0 0
n) BITAND
This will perform bitwise and operation.
Syntax: bitand (value1, value2)
Ex:
SQL> select bitand(2,3), bitand(0,0), bitand(1,1), bitand(null,null), bitand(-2,-3) from
dual;
BITAND(2,3) BITAND(0,0) BITAND(1,1) BITAND(NULL,NULL) BITAND(-2,-3)
-------------- --------------- -------------- ------------------------ -----------------
2 0 1 -4
o) GREATEST
This will give the greatest number.
Syntax: greatest (value1, value2, value3 … valuen)
Ex:
SQL> select greatest(1, 2, 3), greatest(-1, -2, -3) from dual;
GREATEST(1,2,3) GREATEST(-1,-2,-3)
-------------------- -----------------------
3 -1
Ø If all the values are zeros then it will display zero.
Ø If all the parameters are nulls then it will display nothing.
Ø If any of the parameters is null it will display nothing.
p) LEAST
This will give the least number.
Syntax: least (value1, value2, value3 … valuen)
Ex:
SQL> select least(1, 2, 3), least(-1, -2, -3) from dual;
LEAST(1,2,3) LEAST(-1,-2,-3)
-------------------- -----------------------
1 -3
Ø If all the values are zeros then it will display zero.
Ø If all the parameters are nulls then it will display nothing.
Ø If any of the parameters is null it will display nothing.
q) COALESCE
This will return first non-null value.
Syntax: coalesce (value1, value2, value3 … valuen)
Ex:
SQL> select coalesce(1,2,3), coalesce(null,2,null,5) from dual;
COALESCE(1,2,3) COALESCE(NULL,2,NULL,5)
------------------- -------------------------------
1 2
STRING FUNCTIONS
Ø Initcap
Ø Upper
Ø Lower
Ø Length
Ø Rpad
Ø Lpad
Ø Ltrim
Ø Rtrim
Ø Trim
Ø Translate
Ø Replace
Ø Soundex
Ø Concat ( ‘ || ‘ Concatenation operator)
Ø Ascii
Ø Chr
Ø Substr
Ø Instr
Ø Decode
Ø Greatest
Ø Least
Ø Coalesce
a) INITCAP
This will capitalize the initial letter of the string.
Syntax: initcap (string)
Ex:
SQL> select initcap('computer') from dual;
INITCAP
-----------
Computer
b) UPPER
This will convert the string into uppercase.
Syntax: upper (string)
Ex:
SQL> select upper('computer') from dual;
UPPER
-----------
COMPUTER
c) LOWER
This will convert the string into lowercase.
Syntax: lower (string)
Ex:
SQL> select lower('COMPUTER') from dual;
LOWER
-----------
computer
d) LENGTH
This will give length of the string.
Syntax: length (string)
Ex:
SQL> select length('computer') from dual;
LENGTH
-----------
8
e) RPAD
This will allows you to pad the right side of a column with any set of characters.
Syntax: rpad (string, length [, padding_char])
Ex:
SQL> select rpad('computer',15,'*'), rpad('computer',15,'*#') from dual;
RPAD('COMPUTER' RPAD('COMPUTER'
---------------------- ----------------------
computer******* computer*#*#*#*
-- Default padding character was blank space.
f) LPAD
This will allows you to pad the left side of a column with any set of characters.
Syntax: lpad (string, length [, padding_char])
Ex:
SQL> select lpad('computer',15,'*'), lpad('computer',15,'*#') from dual;
LPAD('COMPUTER' LPAD('COMPUTER'
--------------------- ---------------------
*******computer *#*#*#*computer
-- Default padding character was blank space.
g) LTRIM
This will trim off unwanted characters from the left end of string.
Syntax: ltrim (string [,unwanted_chars])
Ex:
SQL> select ltrim('computer','co'), ltrim('computer','com') from dual;
LTRIM( LTRIM
-------- ---------
mputer puter
SQL> select ltrim('computer','puter'), ltrim('computer','omputer') from dual;
LTRIM('C LTRIM('C
---------- ----------
computer computer
-- If you haven’t specify any unwanted characters it will display entire string.
h) RTRIM
This will trim off unwanted characters from the right end of string.
Syntax: rtrim (string [, unwanted_chars])
Ex:
SQL> select rtrim('computer','er'), rtrim('computer','ter') from dual;
RTRIM( RTRIM
-------- ---------
comput compu
SQL> select rtrim('computer','comput’), rtrim('computer','compute') from dual;
RTRIM('C RTRIM('C
---------- ----------
computer computer
-- If you haven’t specify any unwanted characters it will display entire string.
i) TRIM
This will trim off unwanted characters from the both sides of string.
Syntax: trim (unwanted_chars from string)
Ex:
SQL> select trim( 'i' from 'indiani') from dual;
TRIM(
-----
ndian
SQL> select trim( leading'i' from 'indiani') from dual; -- this will work as LTRIM
TRIM(L
------
ndiani
SQL> select trim( trailing'i' from 'indiani') from dual; -- this will work as RTRIM
TRIM(T
------
Indian
j) TRANSLATE
This will replace the set of characters, character by character.
Syntax: translate (string, old_chars, new_chars)
Ex:
SQL> select translate('india','in','xy') from dual;
TRANS
--------
xydxa
k) REPLACE
This will replace the set of characters, string by string.
Syntax: replace (string, old_chars [, new_chars])
Ex:
SQL> select replace('india','in','xy'), replace(‘india’,’in’) from dual;
REPLACE REPLACE
----------- -----------
Xydia dia
l) SOUNDEX
This will be used to find words that sound like other words, exclusively used in where clause.
Syntax: soundex (string)
Ex:
SQL> select * from emp where soundex(ename) = soundex('SMIT');
EMPNO ENAME JOB MGR HIREDATE SAL DEPTNO
--------<
m) CONCAT
This will be used to combine two strings only.
Syntax: concat (string1, string2)
Ex:
SQL> select concat('computer',' operator') from dual;
CONCAT('COMPUTER'
-------------------------
computer operator
If you want to combine more than two strings you have to use concatenation operator (||).
SQL> select 'how' || ' are' || ' you' from dual;
'HOW'||'ARE
---------------
how are you
n) ASCII
This will return the decimal representation in the database character set of the first
character of the string.
Syntax: ascii (string)
Ex:
SQL> select ascii('a'), ascii('apple') from dual;
ASCII('A') ASCII('APPLE')
------------ ------------------
97 97
o) CHR
This will return the character having the binary equivalent to the string in either the
database character set or the national character set.
Syntax: chr (number)
Ex:
SQL> select chr(97) from dual;
CHR
-----
a
p) SUBSTR
This will be used to extract substrings.
Syntax: substr (string, start_chr_count [, no_of_chars])
Ex:
SQL> select substr('computer',2), substr('computer',2,5), substr('computer',3,7) from
dual;
SUBSTR( SUBST SUBSTR
---------- ------- --------
omputer omput mputer
Ø If no_of_chars parameter is negative then it will display nothing.
Ø If both parameters except string are null or zeros then it will display nothing.
Ø If no_of_chars parameter is greater than the length of the string then it ignores and calculates based on the orginal string length.
Ø If start_chr_count is negative then it will extract the substring from right end.
1 2 3 4 5 6 7 8
C O M P U T E R
-8 -7 -6 -5 -4 -3 -2 -1
q) INSTR
This will allows you for searching through a string for set of characters.
Syntax: instr (string, search_str [, start_chr_count [, occurrence] ])
Ex:
SQL> select instr('information','o',4,1), instr('information','o',4,2) from dual;
INSTR('INFORMATION','O',4,1) INSTR('INFORMATION','O',4,2)
------------------------------------ -------------------------------------
4 10
Ø If you are not specifying start_chr_count and occurrence then it will start search from
the beginning and finds first occurrence only.
Ø If both parameters start_chr_count and occurrence are null, it will display nothing.
r) DECODE
Decode will act as value by value substitution.
For every value of field, it will checks for a match in a series of if/then tests.
Syntax: decode (value, if1, then1, if2, then2, ……. else);
Ex:
SQL> select sal, decode(sal,500,'Low',5000,'High','Medium') from emp;
SAL DECODE
----- ---------
500 Low
2500 Medium
2000 Medium
3500 Medium
3000 Medium
5000 High
4000 Medium
5000 High
1800 Medium
1200 Medium
2000 Medium
2700 Medium
2200 Medium
3200 Medium
SQL> select decode(1,1,3), decode(1,2,3,4,4,6) from dual;
DECODE(1,1,3) DECODE(1,2,3,4,4,6)
----------------- ------------------------
3 6
Ø If the number of parameters are odd and different then decode will display nothing.
Ø If the number of parameters are even and different then decode will display last
value.
Ø If all the parameters are null then decode will display nothing.
Ø If all the parameters are zeros then decode will display zero.
s) GREATEST
This will give the greatest string.
Syntax: greatest (strng1, string2, string3 … stringn)
Ex:
SQL> select greatest('a', 'b', 'c'), greatest('satish','srinu','saketh') from dual;
GREAT GREAT
------- -------
c srinu
Ø If all the parameters are nulls then it will display nothing.
Ø If any of the parameters is null it will display nothing.
t) LEAST
This will give the least string.
Syntax: greatest (strng1, string2, string3 … stringn)
Ex:
SQL> select least('a', 'b', 'c'), least('satish','srinu','saketh') from dual;
LEAST LEAST
------- -------
a saketh
Ø If all the parameters are nulls then it will display nothing.
Ø If any of the parameters is null it will display nothing.
u) COALESCE
This will gives the first non-null string.
Syntax: coalesce (strng1, string2, string3 … stringn)
Ex:
SQL> select coalesce('a','b','c'), coalesce(null,'a',null,'b') from dual;
COALESCE COALESCE
----------- -----------
a a
DATE FUNCTIONS
Ø Sysdate
Ø Current_date
Ø Current_timestamp
Ø Systimestamp
Ø Localtimestamp
Ø Dbtimezone
Ø Sessiontimezone
Ø To_char
Ø To_date
Ø Add_months
Ø Months_between
Ø Next_day
Ø Last_day
Ø Extract
Ø Greatest
Ø Least
Ø Round
Ø Trunc
Ø New_time
Ø Coalesce
Oracle default date format is DD-MON-YY.
We can change the default format to our desired format by using the following command.
SQL> alter session set nls_date_format = ‘DD-MONTH-YYYY’;
But this will expire once the session was closed.
a) SYSDATE
This will give the current date and time.
Ex:
SQL> select sysdate from dual;
SYSDATE
-----------
24-DEC-06
b) CURRENT_DATE
This will returns the current date in the session’s timezone.
Ex:
SQL> select current_date from dual;
CURRENT_DATE
------------------
24-DEC-06
c) CURRENT_TIMESTAMP
This will returns the current timestamp with the active time zone information.
Ex:
SQL> select current_timestamp from dual;
CURRENT_TIMESTAMP
---------------------------------------------------------------------------
24-DEC-06 03.42.41.383369 AM +05:30
d) SYSTIMESTAMP
This will returns the system date, including fractional seconds and time zone of the
database.
Ex:
SQL> select systimestamp from dual;
SYSTIMESTAMP
---------------------------------------------------------------------------
24-DEC-06 03.49.31.830099 AM +05:30
e) LOCALTIMESTAMP
This will returns local timestamp in the active time zone information, with no time zone
information shown.
Ex:
SQL> select localtimestamp from dual;
LOCALTIMESTAMP
---------------------------------------------------------------------------
24-DEC-06 03.44.18.502874 AM
f) DBTIMEZONE
This will returns the current database time zone in UTC format. (Coordinated Universal Time)
Ex:
SQL> select dbtimezone from dual;
DBTIMEZONE
---------------
-07:00
g) SESSIONTIMEZONE
This will returns the value of the current session’s time zone.
Ex:
SQL> select sessiontimezone from dual;
SESSIONTIMEZONE
---------------------------------------------------------------------------
+05:30
h) TO_CHAR
This will be used to extract various date formats.
The available date formats as follows.
Syntax: to_char (date, format)
DATE FORMATS
D -- No of days in week
DD -- No of days in month
DDD -- No of days in year
MM -- No of month
MON -- Three letter abbreviation of month
MONTH -- Fully spelled out month
RM -- Roman numeral month
DY -- Three letter abbreviated day
DAY -- Fully spelled out day
Y -- Last one digit of the year
YY -- Last two digits of the year
YYY -- Last three digits of the year
YYYY -- Full four digit year
SYYYY -- Signed year
I -- One digit year from ISO standard
IY -- Two digit year from ISO standard
IYY -- Three digit year from ISO standard
IYYY -- Four digit year from ISO standard
Y, YYY -- Year with comma
YEAR -- Fully spelled out year
CC -- Century
Q -- No of quarters
W -- No of weeks in month
WW -- No of weeks in year
IW -- No of weeks in year from ISO standard
HH -- Hours
MI -- Minutes
SS -- Seconds
FF -- Fractional seconds
AM or PM -- Displays AM or PM depending upon time of day
A.M or P.M -- Displays A.M or P.M depending upon time of day
AD or BC -- Displays AD or BC depending upon the date
A.D or B.C -- Displays AD or BC depending upon the date
FM -- Prefix to month or day, suppresses padding of month or day
TH -- Suffix to a number
SP --
r) TRUNC
Trunc will chops off the date to which it was equal to or less than the given date.
Syntax: trunc (date, (day | month | year))
Ø If the second parameter was year then it always returns the first day of the current year.
Ø If the second parameter was month then it always returns the first day of the current month.
Ø If the second parameter was day then it always returns the previous sunday.
Ø If the second parameter was null then it returns nothing.
Ø If the you are not specifying the second parameter then trunk will resets the time to the
begining of the current day.
Ex:
SQL> select trunc(to_date('24-dec-04','dd-mon-yy'),'year'), trunc(to_date('11-mar-
06','dd-mon-yy'),'year') from dual;
TRUNC(TO_ TRUNC(TO_
------------- --------------
01-JAN-04 01-JAN-06
SQL> select trunc(to_date('11-jan-04','dd-mon-yy'),'month'), trunc(to_date('18-jan-
04','dd-mon-yy'),'month') from dual;
TRUNC(TO_ TRUNC(TO_
------------- -------------
01-JAN-04 01-JAN-04
SQL> select trunc(to_date('26-dec-06','dd-mon-yy'),'day'), trunc(to_date('29-dec-06','dd-
mon-yy'),'day') from dual;
TRUNC(TO_ TRUNC(TO_
------------- --------------
24-DEC-06 24-DEC-06
SQL> select to_char(trunc(to_date('24-dec-06','dd-mon-yy')), 'dd mon yyyy hh:mi:ss am')
from dual;
TO_CHAR(TRUNC(TO_DATE('
---------------------------------
24 dec 2006 12:00:00 am
s) NEW_TIME
This will give the desired timezone’s date and time.
Syntax: new_time (date, current_timezone, desired_timezone)
Available timezones are as follows.
TIMEZONES
AST/ADT -- Atlantic standard/day light time
BST/BDT -- Bering standard/day light time
CST/CDT -- Central standard/day light time
EST/EDT -- Eastern standard/day light time
GMT -- Greenwich mean time
HST/HDT -- Alaska-Hawaii standard/day light time
MST/MDT -- Mountain standard/day light time
NST -- Newfoundland standard time
PST/PDT -- Pacific standard/day light time
YST/YDT -- Yukon standard/day light time
Ex:
SQL> select to_char(new_time(sysdate,'gmt','yst'),'dd mon yyyy hh:mi:ss am') from dual;
TO_CHAR(NEW_TIME(SYSDAT
-----------------------------------
24 dec 2006 02:51:20 pm
SQL> select to_char(new_time(sysdate,'gmt','est'),'dd mon yyyy hh:mi:ss am') from dual;
TO_CHAR(NEW_TIME(SYSDAT
-----------------------
24 dec 2006 06:51:26 pm
t) COALESCE
This will give the first non-null date.
Syntax: coalesce (date1, date2, date3 … daten)
Ex:
SQL> select coalesce('12-jan-90','13-jan-99'), coalesce(null,'12-jan-90','23-mar-98',null)
from dual;
COALESCE( COALESCE(
------------- ------------
12-jan-90 12-jan-90
MISCELLANEOUS FUNCTIONS
Ø Uid
Ø User
Ø Vsize
Ø Rank
Ø Dense_rank
a) UID
This will returns the integer value corresponding to the user currently logged in.
Ex:
SQL> select uid from dual;
UID
----------
319
b) USER
This will returns the login’s user name.
Ex:
SQL> select user from dual;
USER
----------------
SAKETH
c) VSIZE
This will returns the number of bytes in the expression.
Ex:
SQL> select vsize(123), vsize('computer'), vsize('12-jan-90') from dual;
VSIZE(123) VSIZE('COMPUTER') VSIZE('12-JAN-90')
------------- ----------------------- ----------------------
3 8 9
d) RANK
This will give the non-sequential ranking.
Ex:
SQL> select rownum,sal from (select sal from emp order by sal desc);
ROWNUM SAL
---------- ----------
1 5000
2 3000
3 3000
4 2975
5 2850
6 2450
7 1600
8 1500
9 1300
10 1250
11 1250
12 1100
13 1000
14 950
15 800
SQL> select rank(2975) within group(order by sal desc) from emp;
RANK(2975)WITHINGROUP(ORDERBYSALDESC)
---------------------------------------------------------
4
d) DENSE_RANK
This will give the sequential ranking.
Ex:
SQL> select dense_rank(2975) within group(order by sal desc) from emp;
DENSE_RANK(2975)WITHINGROUP(ORDERBYSALDESC)
-----------------------------------------------------------------
3
CONVERSION FUNCTIONS
Ø Bin_to_num
Ø Chartorowid
Ø Rowidtochar
Ø To_number
Ø To_char
Ø To_date
a) BIN_TO_NUM
This will convert the binary value to its numerical equivalent.
Syntax: bin_to_num( binary_bits)
Ex:
SQL> select bin_to_num(1,1,0) from dual;
BIN_TO_NUM(1,1,0)
------------------------
6
Ø If all the bits are zero then it produces zero.
Ø If all the bits are null then it produces an error.
b) CHARTOROWID
This will convert a character string to act like an internal oracle row identifier or rowid.
c) ROWIDTOCHAR
This will convert an internal oracle row identifier or rowid to character string.
d) TO_NUMBER
This will convert a char or varchar to number.
e) TO_CHAR
This will convert a number or date to character string.
f) TO_DATE
This will convert a number, char or varchar to a date.
GROUP FUNCTIONS
Ø Sum
Ø Avg
Ø Max
Ø Min
Ø Count
Group functions will be applied on all the rows but produces single output.
a) SUM
This will give the sum of the values of the specified column.
Syntax: sum (column)
Ex:
SQL> select sum(sal) from emp;
SUM(SAL)
----------
38600
b) AVG
This will give the average of the values of the specified column.
Syntax: avg (column)
Ex:
SQL> select avg(sal) from emp;
AVG(SAL)
---------------
2757.14286
c) MAX
This will give the maximum of the values of the specified column.
Syntax: max (column)
Ex:
SQL> select max(sal) from emp;
MAX(SAL)
----------
5000
d) MIN
This will give the minimum of the values of the specified column.
Syntax: min (column)
Ex:
SQL> select min(sal) from emp;
MIN(SAL)
----------
500
e) COUNT
This will give the count of the values of the specified column.
Syntax: count (column)
Ex:
SQL> select count(sal),count(*) from emp;
COUNT(SAL) COUNT(*)
-------------- ------------
14 14