0% found this document useful (0 votes)
15 views

8TH..SQL Functions

The document discusses various SQL functions including character, numeric, date, and conversion functions. It provides examples of using functions like TO_CHAR, TO_DATE, SUBSTR, ROUND, COUNT, and others. It also discusses formatting dates and aggregating data using functions like COUNT, SUM, MIN, MAX.

Uploaded by

Brahma Reddy
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

8TH..SQL Functions

The document discusses various SQL functions including character, numeric, date, and conversion functions. It provides examples of using functions like TO_CHAR, TO_DATE, SUBSTR, ROUND, COUNT, and others. It also discusses formatting dates and aggregating data using functions like COUNT, SUM, MIN, MAX.

Uploaded by

Brahma Reddy
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 8

to add five minutes

SELECT TO_CHAR(sysdate +05/1440,'HH:MI:SS AM') FROM DUAL;


to subtract ten minutes
SELECT TO_CHAR(sysdate -10/1440,'HH:MI:SS AM') FROM DUAL;
> To change date format.
alter session set nls_date_format='dd-month-yyyy'

SELECT SYSDATE-1 FROM DUAL


TO FIND LAST DATE...+1 TO TOMROW...

SQL FUNCTIONS....
1 Charactor functions :=
Ascii,Chr,length,lower,upper,reverse,TRANSLATE
concat,ltrim,rtrim,lpad,rpad,ini
tcap,instr,substr.
2. Numeric function.(arthimetic) :=
abs,power,ceil,floor,greatest,least,round,trunc,mod
3. date function :=
add_months,months_between,next_day,last_day
4 Conversion function =

to_char,to_date,to_number

5 Aggrigate function

:= Nvl , Nvl2

Nvl functions

count,sum,min,max,avg
, Nullif ,

7.case,decode..
**************************
**************************

SELECT ASCII('A') FROM DUAL;


SELECT CHR(65) FROM DUAL;
SELECT ENAME,LENGTH(ENAME) FROM EMP;
SELECT ENAME,LOWER(ENAME) FROM EMP;
select upper('orbit') from dual;
SELECT REPLACE('RAMA RAO','RAO','REDDY') FROM DUAL;
SQL> SELECT REVERSE('ELCARO') FROM DUAL;

Coalesce

REVERS
-----ORACLE
TRANSLATE.
SELECT TRANSLATE('RAMA','R','M')FROM DUAL
Ans:--TRAN
---MAMA
SQL> SELECT TRIM('M' FROM 'MALAYALAM') FROM DUAL;

SQL> SELECT RTRIM('MALAYALAM','AM') FROM DUAL;


RTRIM('M
-------MALAYAL
SQL> SELECT LPAD('ORBIT',10,'*') FROM DUAL;
LPAD('ORBI
---------*****ORBIT
SQL> SELECT RPAD('ORBIT',10,'*') FROM DUAL;
RPAD('ORBI
---------ORBIT*****
SELECT LPAD(ENAME,LENGTH(ENAME)+3,'Mr.') FROM EMP;
SELECT INITCAP(ENAME) FROM EMP;
SQL> SELECT INITCAP('hyderabad') from dual;
INITCAP('
--------Hyderabad
SQL> SELECT INSTR('MALAYALAM','L',1,2) FROM DUAL;
INSTR('MALAYALAM','L',1,1)
-------------------------3
SQL> SELECT INSTR('MALAYALAM','A',4,1) FROM DUAL;
INSTR('MALAYALAM','L',4,1)
-------------------------7

SQL> SELECT SUBSTR('WEL COME TO ORACLE',5,7) FROM DUAL;


SUBS
---COME TO
SQL>
SQL> SELECT SUBSTR('WEL COME TO ORACLE',13,6) FROM DUAL;
SUBSTR
-----ORACLE
SELECT ENAME,SUBSTR(ENAME,INSTR(ENAME,' ',1,1),15) ENAME,
SUBSTR(ENAME,1,INSTR(ENAME,' ',1,1)) SNAME FROM EMP
/
SQL> SELECT ABS(-99) FROM DUAL;
ABS(-99)
---------99
SQL> SELECT ABS(-99.65) FROM DUAL;
ABS(-99.65)
----------99.65
SQL> SELECT CEIL(45.95) FROM DUAL;
CEIL(45.95)
----------46
SQL> SELECT FLOOR(45.95) FROM DUAL;
FLOOR(45.95)
-----------45
SQL> SELECT GREATEST(45.65,78.65,98.65) FROM DUAL;
GREATEST(45.65,78.65,98.65)
--------------------------98.65
SQL> SELECT LEAST(45.65,78.65,98.65) FROM DUAL;
LEAST(45.65,78.65,98.65)
-----------------------45.65
SELECT ENAME,SAL,COMM,GREATEST(SAL,COMM) MAX FROM EMP;
LEAST(SAL,COMM) MIN FROM EMP ;

QL> SELECT ROUND(456.689) FROM DUAL;


OUND(456.689)
------------457
QL> SELECT ROUND(456.689,2) FROM DUAL;
OUND(456.689,2)
--------------456.69
QL>
SELECT ENAME,JOB,SAL,SAL/30 DSAL ,ROUND(SAL/30) SAL,ROUND(SAL/30,2) SAL FROM EMP
;
/
QL> SELECT TRUNC(456.986) FROM DUAL;
RUNC(456.986)
------------456
QL>
QL>
QL> SELECT TRUNC(456.986,2) FROM DUAL;
RUNC(456.986,2)
--------------456.98
SQL> SELECT MOD(106,10) FROM DUAL;
MOD(106,10)
----------6
SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;
SQL> SELECT MONTHS_BETWEEN('01-JAN-10','01-JAN-09') FROM DUAL;
MONTHS_BETWEEN('01-JAN-10','01-JAN-09')
--------------------------------------12

SQL> SELECT NEXT_DAY(SYSDATE,'SAT') FROM DUAL;


NEXT_DAY(
--------07-AUG-10
SQL> SELECT LAST_DAY(SYSDATE) FROM DUAL;

LAST_DAY(
--------31-AUG-10
SELECT ROUND(SYSDATE,'YEAR') FROM DUAL;

SQL> SELECT ROUND(SYSDATE,'MONTH') FROM DUAL;


ROUND(SYS
--------01-AUG-10

QL> select count(*) from emp WHERE JOB='MANAGER';


COUNT(*)
--------3
QL> select count(*) from emp WHERE DEPTNO=30;
COUNT(*)
--------6
SELECT DEPTNO,COUNT(*) FROM EMP GROUP BY DEPTNO;
DEPTNO COUNT(*)
---------- ---------10
2
20
5
30
6
40
1
SELECT DEPTNO,SUM(SAL) FROM EMP
GROUP BY DEPTNO
DEPTNO SUM(SAL)
--------- ---------10
7450
20
10875
30
9400
40
1300
29025
SELECT DEPTNO,SUM(SAL) FROM EMP
GROUP BY DEPTNO
HAVING SUM(SAL)>8000
SQL> /
DEPTNO SUM(SAL)
---------- ---------20
10875
30
9400

SQL> SELECT MAX(SAL) FROM EMP;


MAX(SAL)
---------5000
SQL>
SQL>
SQL> SELECT DEPTNO,MAX(SAL) FROM EMP GROUP BY DEPTNO;
DEPTNO MAX(SAL)
---------- ---------10
5000
20
3000
30
2850
40
1300
QL> SELECT MIN(HIREDATE) FROM EMP;
IN(HIRED
-------7-DEC-80
QL> SELECT JOB,MIN(HIREDATE) FROM EMP
GROUP BY JOB;
OB
-------NALYST
LERK
ANAGER
RESIDENT
ALESMAN

MIN(HIRED
--------03-DEC-81
17-DEC-80
02-APR-81
17-NOV-81
20-FEB-81

SQL> SELECT DEPTNO,COUNT(*),SUM(SAL),AVG(SAL) FROM EMP


GROUP BY DEPTNO;
DEPTNO COUNT(*) SUM(SAL) AVG(SAL)
---------- ---------- ---------- ---------10
2
7450
3725
20
5
10875
2175
30
6
9400 1566.66667
40
1
1300
1300
14
29025 2073.21429
select deptno,min(sal) from emp
where deptno in(20,30,10)
group by deptno
/
SELECT DEPTNO,COUNT(*) FROM EMP
GROUP BY DEPTNO
HAVING COUNT(*) >2

SELECT DEPTNO,SUM(SAL) FROM EMP

GROUP BY DEPTNO
HAVING SUM(SAL) <5000
SELECT DEPTNO,JOB,MGR,SUM(SAL) FROM EMP
GROUP BY GROUPING SETS
((DEPTNO,JOB),(JOB,MGR))
/
SELECT JOB,MIN(SAL) FROM EMP
GROUP BY JOB
HAVING MIN(SAL)>2000
ORDER BY JOB

SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO

> SELECT TO_DATE('090908','DD-MM-YY') FROM DUAL;


select round (to_date('05-mar-2007'),'year') from dual;

SQL> SELECT TO_CHAR(TO_DATE('04-JUL-45','DD-MM-YY'),'DD-MONTH-YYYY') FROM DUAL

To convert date format into charactor format.


mm
=12
mon
= dec
month =december
y
=6
yy
=06
yyy
=006
yyyy
=2006
year
= two thousand six
d =5
dy =thu
day = thursday
ww =no of the week of the year.
dd = 31
ddd= 1 to 365 DAY of year.
ddsp =thirty first
ddspth = thirty firstth
hh
hh24
mi
ss

= hour
=railway time
=minutes
=second

dl = day on local long format

ds = day on local short format


cc = century.
> select to_char(to_date('28-mar-2007'),'dd-month-year')from dual;
TO_CHAR(TO_DATE('28-MAR-2007'),
------------------------------28-march
-two thousand seven
> select to_char(sysdate,'ddsp-month-yyyy')from dual;
> select to_char(sysdate,'ddspth-month-year')from dual;
> select to_char(sysdate,'ddspth-month-year,hh:mm:ss')from dual;
> select to_char(sysdate,'hhpm:mi:ss') from dual;
> select to_char(to_date('28-mar-2007'),'ddspth-month-year,hh24:mm:ss')from dual
;
(out put)
TO_CHAR(TO_DATE('28-MAR-2007'),'DDSPTH-MONTH-YEAR,H
--------------------------------------------------twenty-eighth-march
-two thousand seven,00:03:00
*************************
Count how many employees job wise for each deptno.
select job,count(decode(deptno,10,job))"10",
count(decode(deptno,20,job))"20",
count(decode(deptno,30,job))"30",
count(decode(deptno,40,job))"40",
count(job) tot
from emp group by rollup(job);
*******************************
********************************
COLLECT FUNCTION.....
IT IS USED TO RETAINIG MULTIPLE RECODS OF DATA WITHIN ON ONE ROW LIKE NESTED TAB
LE....
EX....
SELECT DEPTNO,COLLECT(JOB) AS EMPS FROM EMP
GROUP BY DEPTNO
/
****************************************************

..............NVL FOR NEXT 9TH CHEPTER........................

You might also like