0% found this document useful (0 votes)
33 views13 pages

Single Row Functions

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 13

DAY 18

Monday, August 10, 2020 9:47 AM

SINGLE ROW FUNCTIONS


1. LENGTH( )
2. CONCAT( )
3. UPPER( )
4. LOWER( )
5. INITCAP( )
6. REVERSE( )
7. SUSBTR( )
8. INSTR( )
9. REPLACE( )
10. MOD( )
11. TRUNC( )
12. ROUND( )
13. MONTHS_BETWEEN( )
14. LAST_DAY( )
15. TO_CHAR( )
16. NVL( )

1. LENGTH : "It is used to count the number of characters present


In the given string ".

SYNTAX: LENGTH ( 'string' )

Example :

➢ WAQT count number of characters present in 'SMITH' .

SELECT LENGTH ( ENAME )


FROM EMP LENGTH(ENAME)
WHERE ENAME ='SMITH' ;
5
SELECT LENGTH( 'SMITH' )
FROM DUAL ;

SELECT LENGTH( 'HELLO WORLD' ) 11


FROM DUAL;

NOTE : DUAL TABLE


It is a DUMMY table which has 1 col and 1 row .
Which is used to output the result .

➢ DESC DUAL ;

➢ SELECT *
FROM DUAL ;

2. CONCAT( ) : "It is used to join the given two strings '

New Section 1 Page 1


SYNTAX : CONCAT ( 'string1' , 'String2' )

Example :

Input : Smith
Output : Mr. Smith

SELECT CONCAT( 'Mr. ' , ENAME )


FROM EMP
WHERE ENAME ='SMITH' ;

3. UPPER( ) : "It is used to convert a given string to upper case "

SYNTAX: UPPER ( 'string' )

4. LOWER( ) :"It is used to convert a given string to lower case "

SYNTAX: LOWER( 'string' )


5. INITCAP( ):"It is used to convert a given string to initial capital letter
case ".
SYNTAX: INITCAP( 'string' )

6. REVERSE( ): "It is used to reverse a given string ".

SYNTAX: REVERSE( 'string' )

Example :
REVERSE( 'SMITH' )
SELECT REVERSE( 'SMITH' ). HTIMS
FROM DUAL ;
UPPER( 'smith' )
SELECT UPPER( 'smith' ).
SMITH
FROM DUAL ;

SELECT LOWER( 'SMITH' ). LOWER( 'SMITH' )


FROM DUAL ; smith

SELECT INITCAP( 'SMITH' ).


FROM DUAL ; INITCAP( 'SMITH' )
Smith

7. SUBSTR : "It is used to extract a part of string from the given


Original string " .

SYNTAX: SUBSTR ( 'Original_String' , Position [ , Length ] )


NOTE: Length is not mandatory ,
Example : If length is not mentioned then

New Section 1 Page 2


SYNTAX: SUBSTR ( 'Original_String' , Position [ , Length ] )
NOTE: Length is not mandatory ,
Example : If length is not mentioned then
Consider the complete string .
-ve -7 -6 -5 -4 -3 -2 -1
Q S P I D E R
+ve 1 2 3 4 5 6 7

Example : SUBSTR( 'QSPIDER' , 2 , 3 ) SPI


Example : SUBSTR( 'QSPIDER' , 3 , 3 ) PID
Example : SUBSTR( 'QSPIDER' , 2 ) SPIDER
Example : SUBSTR( 'QSPIDER' , 1 , 6 ) QSPIDE
Example : SUBSTR( 'QSPIDER' , 4, 1) I
Example : SUBSTR( 'QSPIDER' , 1 , 1 ) Q
Example : SUBSTR( 'QSPIDER' , 7 , 1) R
Example : SUBSTR( 'QSPIDER' , 6 ) ER
Example : SUBSTR( 'QSPIDER' , 0 , 3 ) QSP
Example : SUBSTR( 'QSPIDER' , 6 , 6 ) ER
Example : SUBSTR( 'QSPIDER' , -2 , 1 ) E
Example : SUBSTR( 'QSPIDER' , -5 , 3 ) PID
Example : SUBSTR( 'QSPIDER' , -7 , 2 ) QS
Example : SUBSTR( 'QSPIDER' , -1 ) R

➢ WAQT extract first 3 characters of the emp names .

SELECT SUBSTR(ENAME, 1,3)


FROM EMP;

➢ WAQT extract last 3 characters of the employee names .

SELECT SUBSTR(ENAME, -3 )
FROM EMP;

➢ WAQT to display first half of employee names .

ENAME OUTPUT
SMITH SM
MILLER MIL
JONES JO
WARD WA

SELECT SUBSTR( ENAME , 1 , LENGTH( ENAME ) / 2 )


FROM EMP ;

SMITH SUBSTR( ENAME , 1 , LENGTH( ENAME ) / 2 )


SUBSTR( 'SMITH' , 1 , LENGTH ( 'SMITH' ) / 2 )

New Section 1 Page 3


SUBSTR( 'SMITH' , 1 , LENGTH ( 'SMITH' ) / 2 )
SUBSTR( 'SMITH' , 1 , 5 / 2 )
SUBSTR( 'SMITH' , 1 , 2 )
SM

WARD SUBSTR( ENAME , 1 , LENGTH( ENAME ) / 2 )


SUBSTR( 'WARD' , 1 , LENGTH ('WARD' ) / 2 )
SUBSTR( 'WARD' , 1 , 4 / 2 )
SUBSTR( 'WARD' , 1 , 2 )
WA

➢ WAQT to display second half of employee names .

ENAME OUTPUT
SMITH ITH
MILLER LER
JONES NES
WARD RD

SELECT SUBSTR( ENAME , LENGTH( ENAME ) / 2 + 1 )


FROM EMP ;

SMITH SUBSTR( ENAME , LENGTH( ENAME ) / 2 +1)


SUBSTR( 'SMITH' , LENGTH ( 'SMITH' ) / 2 +1)
SUBSTR( 'SMITH' , 5 / 2 +1)
SUBSTR( 'SMITH' , 3 )
ITH

WARD SUBSTR( ENAME , LENGTH( ENAME ) / 2+1 )


SUBSTR( 'WARD' , LENGTH ('WARD' ) / 2+1 )
SUBSTR( 'WARD' , 4 / 2 +1)
SUBSTR( 'WARD' , 3)
RD

8. REPLACE ( ) : "It is used to replace a string with another string in


The original string.
Null
SYNTAX:REPLACE ( 'Original_String' , 'string' [, 'new_String' ] )

Example : REPLACE ( 'BANANA' , 'A' , 'C' ) BCNCNC


Example : REPLACE ( 'BANANA' , 'N' , 'ABC' ) BAABCAABCA
Example : REPLACE ( 'OPPO' , 'O' , 'J' ) JPPJ
Example : REPLACE ( 'BANANA' , 'A' ) BNN
Example : REPLACE ( 'ENGINEERING' , 'E' ) NGINRING

New Section 1 Page 4


Example : REPLACE ( 'ENGINEERING' , 'E' , '123' ) 123N123123GINRING

NOTE : if the third argument is not mentioned the default


Value of it is Null .

1. WAQTD the number of times char 'A' is present in BANANA !!!

SELECT LENGTH('BANANA') - LENGTH ( REPLACE( 'BANANA','A' )


FROM DUAL ;

Length ( 'BANANA' ) - LENGTH( REPLACE('BANANA','A') )


Length ('BANANA') - LENGH ('BNN' )
6-3
= 3 times 'A' is present in BANANA

2. WAQTD to count number of time 'A' is present in 'MALAYALAM'

SELECT LENGTH('MALAYALAM') - LENGTH


( REPLACE( 'MALAYALAM','A' )
FROM DUAL ;

New Section 1 Page 5


DAY 19
Tuesday, August 11, 2020 9:56 AM

9. INSTR ( ) : "it is used to obtain the position in which the string is present in the Original string ".
It is used to search for a string in the Original string if present it returns the POSITION
Else it returns 0 ".

Syntax: INSTR( 'Original_String' , 'String' , Position [, Occurrence] )

Note : if occurrence is not Mentioned then , the default value of Occurrence is 1 .

B A N A N A
1 2 3 4 5 6

Example : INSTR( 'BANANA' , 'A' , 1 , 1 ) POS: 2


Example : INSTR( 'BANANA' , 'A' , 2 , 1 ) POS: 2
Example : INSTR( 'BANANA' , 'A' , 1 , 2 ) POS: 4
Example : INSTR( 'BANANA' , 'A' , 1 , 3 ) POS: 6
Example : INSTR( 'BANANA' , 'A' , 1 , 4 ) POS: 0
Example : INSTR( 'BANANA' , 'A' , 4 , 2 ) POS: 6
Example : INSTR( 'BANANA' , 'A' , 2 ) POS: 2
Example : INSTR( 'BANANA' , 'N' , 2 , 1) POS: 3
Example : INSTR( 'BANANA' , 'O' , 1 ,1 ) POS: 0
Example : INSTR( 'BANANA' , 'NA' , 2 , 2 ) POS: 5
Example : INSTR( 'BANANA' , 'A' , 3 , 3 ) POS: 0
Example : INSTR( 'BANANA' , 'ANA' , 1 , 2 ) POS: 4

1. WAQTD NAMES OF THE EMPLOYEES IF THEY HAVE CHAR 'A' PRESENT IN THEIR NAMES

SELECT ENAME
FROM EMP
WHERE INSTR( ENAME , 'A' , 1 ,1 ) > 0 ;

2. WAQTD NAMES OF THE EMPLOYEES IF THEY HAVE CHAR 'A' PRESENT ATLEAST TWICE IN
THEIR NAMES

SELECT ENAME
FROM EMP
WHERE INSTR( ENAME , 'A' , 1 , 2 ) > 0 ;

3. WAQTD NAMES OF THE EMPLOYEES IF THEY HAVE CHAR 'A' PRESENT ATLEAST THRICE IN
THEIR NAMES

SELECT ENAME
FROM EMP
WHERE INSTR( ENAME , 'A' , 1 , 3 ) > 0 ;

New Section 1 Page 1


WHERE INSTR( ENAME , 'A' , 1 , 3 ) > 0 ;

4. WAQTD NAMES OF THE EMPLOYEES IF THEY HAVE CHAR 'A' EXACTLY TWICE

SELECT ENAME
FROM EMP
WHERE INSTR( ENAME , 'A' , 1 , 2 ) > 0 AND INSTR( ENAME , 'A' , 1 , 3 ) = 0 ;

OR

SELECT ENAME
FROM EMP
WHERE ( LENGTH( ENAME ) - LENGTH( REPLACE( ENAME ,'A') ) ) = 2;

ALLEN INSTR('ALLEN','A',1,2) Pos:0 INSTR('ALLEN','A',1,3) Pos:0


ADAMS INSTR('ADAMS','A',1,2) Pos:3 INSTR('ADAMS','A',1,3) Pos:0
AATISH INSTR('AATISH','A',1,2) Pos:2 INSTR('AATISH','A',1,3) Pos:0
AAA INSTR('AAA' ,'A',1 ,2) Pos:2 INSTR('AAA' ,'A',1 ,3) Pos:3
MALAYALAM INSTR('MALAYALAM' , 'A' , 1, 2 ) Pos:4 INSTR('MALAYALAM' , 'A' , 1, 3 ) Pos:6

ALLEN LENGTH( 'ALLEN' ) - LENGTH( REPLACE( 'ALLEN' ,A' ) ) =2


5 - LENGTH( 'LLEN' )
5-4
1 != 2
ADAMS 5 - LENGTH('DMS' )
5-3
2 =2
AAAAO 5 - LENGTH('O')
5-1
4 != 2

SINGLE ROW FUNCTIONS


10. MOD( )
11. TRUNC( )
12. ROUND( )
13. MONTHS_BETWEEN( )
14. LAST_DAY( )
15. TO_CHAR( )
16. NVL( )

New Section 1 Page 2


10. MOD( ) : "It is used to obtain modulus/remainder of the given number "

Syntax: MOD ( m , n ) n)m(

Example : SELECT MOD( 5 , 2 )


FROM DUAL ; 1

1 . WAQTD ENAMES OF THE EMPLOYEES WHO EARN SALARY IN MULTIPLES OF 3

SELECT ENAME
FROM EMP
WHERE MOD( SAL , 3 ) = 0 ;

2. WAQTD DETAILS OF THE EMPLOYEE WHO HAVE ODD EID

SELECT *
FROM EMP
WHERE MOD( EID , 2 ) = 1 ;

11. ROUND( ) : " It is used to Round-off the given number based on the scale value "

Syntax: ROUND ( Number [, Scale ] ) The default value of scale is 0

Example : ROUND ( 5.6 ) 6


Example : ROUND ( 5.5 ) 6 LHS RHS
Example : ROUND ( 5.4 ) 5
Example : ROUND ( 9.9 ) 10 Before the Decimal After the Decimal
Example : ROUND ( 9.4 ) 9
-ve SCALE +ve SCALE
Example : ROUND (8.6 , 0 ) 9
Decimal

When the scale is -ve it indicated the digits before the decimal ROUND ( 8421 .12 , -1 )
And the digit count begins from 1 .

Example : ROUND ( 8421.12 , -1 ) 8420


5.6 6 Rounding off to units place
Example : ROUND ( 8426.12 , -1 ) 8430
Example : ROUND ( 154264.12 , -2 ) 154300
Example : ROUND ( 338222 , -4 ) 340000
Example : ROUND ( 2514 , -3 ) 3000

When the scale is +ve it indicated the digits after the decimal
And the digit count begins from 0 .

Example : ROUND ( 124.23541 , 0 ) 124 ( 124.23541 , 0 ) = 124

New Section 1 Page 3


And the digit count begins from 0 .

Example : ROUND ( 124.23541 , 0 ) 124 ( 124.23541 , 0 ) = 124


Example : ROUND ( 124. 23541 , 1 ) 124.2 ( 124.23541 , 1 ) = 124.2
Example : ROUND ( 124. 23541 , 2 ) 124.24
( 123.6712638723 , 6 ) =
Example : ROUND ( 124. 2354391 , 5 ) 124.23544
123.671264

12. TRUNC( ): "It is similar to ROUND() but it always rounds-off the given number to the lower value "

Syntax: TRUNC( Number [, Scale ] )

Example : TRUNC ( 5.6 ) 5


Example : TRUNC ( 5.5 ) 5
Example : TRUNC ( 5.4 ) 5
Example : TRUNC ( 9.9 ) 9
Example : TRUNC ( 9.4 ) 9
Example : TRUNC (8.6 , 0 ) 8
Example: TRUNC( 451258.32541 , -5) 400000

NOTE :
DATE COMMANDS :
i. SYSDATE : " it is used to obtain Todays Date "
ii. CURRERNT_DATE : " it is also used to obtain todays date "
iii. SYSTIMESTAMP : "It is used to obtain date , time and time zone "

SQL> SELECT SYSDATE


2 FROM DUAL ;

SYSDATE
---------------
17-MAY-20

SQL> SELECT CURRENT_DATE


2 FROM DUAL ;

CURRENT_D
------------------
17-MAY-20

SQL> SELECT SYSTIMESTAMP


2 FROM DUAL ;

SYSTIMESTAMP
---------------------------------------------------
17-MAY-20 05.05.52.356000 PM +05:30

New Section 1 Page 4


13. MONTHS_BETWEEN( ) :"It is used to Obtain the number of months present between the
Given two dates "

Syntax: MONTHS_BETWEEN ( DATE1 , DATE2 )

SELECT TRUNC( MONTHS_BETWEEN( SYSDATE , HIREDATE ) ) || ' Months'


FROM EMP

TRUNC(MONTHS_BETWEEN(SYSDATE,HIREDATE))||'MONTH
----------------------------------------------------------------------------------------
473 Months
470 Months

14. LAST_DAY( ): " it is used to Obtain the last day in the particular of the given date" .

Syntax: LAST_DAY( DATE ) ;

SQL> SELECT LAST_DAY( SYSDATE ) SYSDATE = 08-JUL-2020


2 FROM DUAL ;

LAST_DAY
----------------
31-JUL-20

15. TO_CHAR( ) :"It is used to convert the given date into String format based on the Model given "

Syntax: TO_CHAR( DATE , 'Format _ Models')

Format Models :
i. YEAR : TWENTY TWENTY
ii. YYYY : 2020
iii. YY : 20
iv. MONTH : JULY
v. MON : JUL
vi. MM : 07
vii. DAY : WEDNESDAY
viii. DY : WED
ix. DD : 08
x. D : 4 ( day of the week )
xi. HH24 : 17 hours
xii. HH12 : 5 hours
xiii. MI : 22 minutes
xiv. SS : 53 seconds
xv. 'HH12:MI:SS' : 5 : 22 : 53
xvi. 'DD-MM-YY' : 17 - 05 - 20
xvii. 'MM-DD-YYYY' : 05 - 17 - 2020

New Section 1 Page 5


1. WAQTD DETAILS OF THE EMPLOYEE WHO WAS HIRED ON A SUNDAY .

SELECT *
FROM EMP
WHERE TO_CHAR( HIREDATE , 'DAY' ) = 'SUNDAY' ;

2. WAQTD DETAILS OF AN EMPLOYEE HIRED ON MONDAY AT 10AM

SELECT *
FROM EMP
WHERE TO_CHAR( HIREDATE , 'D' ) = 2 AND TO_CHAR( HIREDATE , 'HH24' ) = 10 ;

16. NVL( ) : [ NULL VALUE LOGIC ] " It is used to eliminate the side effects of using null in arithmetic
operations " .

WAQTD NAME AND TOTAL SALALRY OF ALL THE EMPLOYEES?


ENAME SAL COMM
A 500 100 SELECT ENAME , SAL + COMM
B 1000 NULL FROM EMP ;
C 2000 200
D 2000 NULL ENAME SAL+COMM
A 600
B NULL
C 2200
D NULL

Null value logic : Syntax : NVL ( Argument1 , Argument2 )

Argument 1 : Here write any column / exp which can result In null .
Argument 2 : Here we write a numeric value which will be substituted
if argument 1 results in Null ,
If argument 1 is NOT NULL then the same value will be considered .

SELECT ENAME , SAL + NVL ( COMM , 0 )


FROM EMP ;

A 500 + NVL ( 100 , 0 ) 500 + 100 600


B 1000 + NVL ( null , 0 ) 1000 + 0 1000
C 2000 + NVL ( 200 , 0 ) 2000+200 2200
D 2000 + NVL( null , 0 ) 2000 + 0 2000

After using NVL


ENAME SAL+nvl(COMM ,0)
A 600

New Section 1 Page 6


After using NVL
ENAME SAL+nvl(COMM ,0)
A 600
B 1000
C 2200
D 2000

1. List employees whose name having 4 characters


SELECT *
FROM EMP
WHERE LENGTH(ENAME)=4 ;

2. List employees whose job is having 7 characters


SELECT *
FROM EMP
WHERE LENGTH(JOB)=4;

3. Find out how many times letter 'S' occurs in 'qspiders'


SELECT LENGTH('QSPIDERS') - LENGTH( REPLACE( 'QSPIDERS' , 'S' ) )
FROM DUAL ;

4. List the employees whose job is having last 3 characters as 'man'


SELECT *
FROM EMP
WHERE SUBSTR( JOB , -3 ) = 'MAN' ;

5. List employees whose job is having first 3 characters as 'man'.


SELECT *
FROM EMP
WHERE SUBSTR( JOB , 1 , 3 ) = 'MAN' ;

6. Display all the names whose name is having exactly 1 'L'


SELECT ENAME
FROM EMP
WHERE INSTR( ENAME , 'L' , 1,1 ) != 0 AND INSTR( ENAME , 'L' , 1, 2 ) = 0 ;

OR

SELECT ENAME
FROM EMP
WHERE LENGTH( ENAME ) - LENGTH( REPLACE( ENAME , 'L' ) ) = 1 ;

7. Display dept names which are having letter 'O'


SELECT DNAME
FROM DEPT
WHERE INSTR(DNAME,'O',1,1 ) !=0 ;

9. Calculate number of L in string 'HELLLLL'


SELECT LENGTH('HELLLLL') - LENGTH( REPLACE( 'HELLLLL' , 'L' ) )
FROM DUAL ;

10. Display all the employees whose job has a string 'MAN'

New Section 1 Page 7


10. Display all the employees whose job has a string 'MAN'
SELECT *
FROM EMP
WHERE INSTR(JOB,'MAN',1,1 ) !=0 ;

11. Display all the employees whose job starts with string 'MAN'
SELECT *
FROM EMP
WHERE INSTR(JOB,'MAN',1,1 ) =1 ;

OR

SELECT *
FROM EMP
WHERE SUBSTR( JOB ,1,3) = 'MAN' ;

12. Display all the employees whose job ends with string 'MAN'
SELECT *
FROM EMP
WHERE SUBSTR( JOB , -3 ) = 'MAN' ;

13. Display first 3 characters of ename in lower case and rest everything in upper case.
If ename is 'QSPIDERS' then display this as ‘qspIDERS’
SELECT LOWER(SUBSTR('QSPIDERS',1,3)) || UPPER( SUSBTR('QSPIDERS' , 4) )
FROM DUAL ;

14. Display the result from emp table as below.


SMITH is a CLERK and gets salary 2000
Here SMITH is ename column, CLERK is JOB and 2000 is SAL column and rest everything is literal
strings.
SELECT ENAME || ' IS A '|| JOB || ' AND GETS SALARY ' || SAL
FROM EMP
WHERE ENAME = 'SMITH' ;

15.list the employees hired on a Wednesday


SELECT *
FROM EMP
WHERE TO_CHAR( HIREDATE , 'DY' ) = WED ;

16.list the employees hired on a leap year


SELECT *
FROM EMP
WHERE MOD( TO_CHAR( HIREDATE , 'YY' ) , 4 ) = 0 ;

17.list the employees hired on a Sunday in the month of may


SELECT *
FROM EMP
WHERE TO_CHAR( HIREDATE , 'DY' ) = 'SUN' AND TO_CHAR( HIREDATE , 'MON' ) = 'MAY' ;

New Section 1 Page 8

You might also like