Download - Single – Row Functions
![Page 1: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/1.jpg)
Single – Row FunctionsSingle – Row Functions
![Page 2: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/2.jpg)
ObjectivesObjectives
After completing this lesson, you should be After completing this lesson, you should be able to do the following:able to do the following:
Describe various types of functions Describe various types of functions available in SQLavailable in SQL
Use character, number, and date function Use character, number, and date function in SELECT statementsin SELECT statements
Describe the use of conversion functionsDescribe the use of conversion functions
![Page 3: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/3.jpg)
SQL FunctionsSQL Functions
Function
Result
value
arg 1
arg 2
arg n
Function
Performs action
OutputInput
![Page 4: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/4.jpg)
TwO Types of SQL FunctionsTwO Types of SQL Functions
Functions
Single-row
functions
Multiple-row
functions
![Page 5: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/5.jpg)
Single – Row FunctionsSingle – Row Functions
Manipulate data itemsManipulate data items Accept arguments and return one valueAccept arguments and return one value Act on each row returnedAct on each row returned Return one result per rowReturn one result per row May modify the datatypeMay modify the datatype Can be nestedCan be nested
Function_name ( column | expression , [ arg1 , arg2 , …..] )
![Page 6: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/6.jpg)
Single – Row FunctionsSingle – Row Functions
Character
Single-row
functions
General
Conversion
Number
Date
![Page 7: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/7.jpg)
Character FunctionsCharacter FunctionsCharacter
functions
Case conversion
functions
Character manipulation
functions
LOWER
UPPER
INITCAP
CONCAT
SUBSTR
LENGTH
INSTR
LPAD
TRIM
![Page 8: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/8.jpg)
Character FunctionsCharacter FunctionsCharacter
functions
Case conversion
functions
Character manipulation
functions
LOWER
UPPER
INITCAP
CONCAT
SUBSTR
LENGTH
INSTR
LPAD
TRIM
![Page 9: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/9.jpg)
Case Conversion FunctionsCase Conversion Functions
Convert case for character stringsConvert case for character strings
Function Result
LOWER ( ' SQL Course ' ) sql course
UPPER ( ' SQL Course ' ) SQL COURSE
INITCAP( ' SQL Course ' ) sql Course
![Page 10: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/10.jpg)
Using Case Conversion FunctionsUsing Case Conversion Functions
Using the employee number,name,and department Using the employee number,name,and department number for employee Blake.number for employee Blake.
SQL> SELECT empno,ename,deptno 2 FROM emp 3 Where ename = 'blake'; no rows selected
SQL> SELECT empno,ename,deptno 2 FROM emp 3 WHERE ename = UPPER('blake')
EMPNO ENAME DEPTNO---------- ---------- ---------- 7698 BLAKE 30
![Page 11: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/11.jpg)
Character Manipulation FunctionsCharacter Manipulation Functions
Manipulate character stingsManipulate character stings
Function Result
CONCAT ( 'Good ' , ' String ' ) GoodString
SUBSTR ( ' String ' , 1,3 ) Str
LENGTH ( 'String ' ) 6INSTR ( ' String ' , ' r ' ) 3LPAD ( sal,10 ' * ' ) ******5000
TRIM ( ' S ' FROM ' SSMITH ' ) MITH
![Page 12: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/12.jpg)
Using the CharacterUsing the CharacterManipulation FunctionsManipulation Functions
SQL> SELECT ename , CONCAT (ename , job ), LENGTH (ename), 2 INSTR (ename, 'A') 3 FROM emp 4 WHERE SUBSTR ( job,1,5) = 'sales'
ENAME CONCAT(ENAME,JOB) LENGTH(ENAME) INSTR(ENAME,'A')---------- ------------------- ------------- ----------------------- ------------------------ALLEN ALLENSALESMAN 5 1WARD WARDSALESMAN 4 2MARTIN MARTINSALESMAN 6 2TURNER TURNERSALESMAN 6 0
![Page 13: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/13.jpg)
Number FunctionsNumber Functions
ROUND: Rounds value to specifiedROUND: Rounds value to specified decimaldecimal
ROUND(45.926,2) 45.93ROUND(45.926,2) 45.93 TRUNC: Truncates value to specifiedTRUNC: Truncates value to specified
decimaldecimal TRUNC(45.926,2) 45.92TRUNC(45.926,2) 45.92 MOD: Returns remainder of divisionMOD: Returns remainder of division MOD(1600,300) 100 MOD(1600,300) 100
![Page 14: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/14.jpg)
Using the ROUND FunctionUsing the ROUND Function
SQL> SELECT ROUND (45.923,2) , ROUND (45.923,0) , 2 ROUND (45.923,-1) 3 FROM DUAL;
ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1)------------------------- ------------------------- ------------------------ 45.92 46 50
![Page 15: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/15.jpg)
Using the TRUNC FunctionUsing the TRUNC Function
SQL> SELECT TRUNC (45.923,2) , TRUNC (45.923,0) , 2 TRUNC (45.923,-1) 3 FROM DUAL;
TRUNC(45.923,2) TRUNC(45.923,0) TRUNC(45.923,-1)------------------------- ------------------------- ------------------------ 45.92 45 40
![Page 16: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/16.jpg)
Using the MOD FunctionUsing the MOD Function
Calculate the remainder of the ratio ofCalculate the remainder of the ratio of
salary to commission for all employeessalary to commission for all employees
Whose job title is salesman.Whose job title is salesman.
SQL> SELECT ename , sal , comm , MOD ( sal , comm) 2 FROM emp 3 WHERE job = 'SALESMAN';
ENAME SAL COMM MOD(SAL,COMM)------------- ----------- ----------- -------------ALLEN 1600 300 100WARD 1250 500 250MARTIN 1250 1400 1250TURNER 1500 0 1500
![Page 17: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/17.jpg)
Working with DatesWorking with Dates
Oracle stores dates in an internal Oracle stores dates in an internal numeric format: century,year,month,day,numeric format: century,year,month,day,
hours,minutes,seconds.hours,minutes,seconds. The default date format is DD-MON-YY.The default date format is DD-MON-YY. SYSDATE is a function returning date and SYSDATE is a function returning date and
time.time. DUAL is a dummy table used to view DUAL is a dummy table used to view
SYSDATE.SYSDATE.
![Page 18: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/18.jpg)
Arithmetic with DatesArithmetic with Dates
Add or subtract a number to or from a date Add or subtract a number to or from a date for a resultant date value.for a resultant date value.
Subtract two dates to find the number of Subtract two dates to find the number of days between those dates.days between those dates.
Add hours to a date by dividing the Add hours to a date by dividing the number of hours by 24.number of hours by 24.
![Page 19: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/19.jpg)
Using Arithmetic Operators Using Arithmetic Operators with Dateswith Dates
SQL> SELECT ename , (SYSDATE-hiredate) / 7 WEEKS 2 FROM emp 3 WHERE deptno = 10 ;
ENAME WEEKS----------- ----------------KING 830.93709CLARK 853.93709MILLER 821.36566
![Page 20: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/20.jpg)
Date FunctionsDate Functions
Function Description
MONTHS_BETWEEN Number of months
between two dates
ROUND Round date
ADD_MONTHS Add calendar months to
dateNEXT_DAY Next day of the date
specifiedLAST_DAY Last day of the month
TRUNC Truncate date
![Page 21: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/21.jpg)
Using Date FunctionsUsing Date Functions
MONTHS_BETWEEN (' 01MONTHS_BETWEEN (' 01--SEP-95 ‘, ’11-JAN-94 SEP-95 ‘, ’11-JAN-94 ''))
ADD_MONTHS (' 11-JAN-94 ' ,6) ADD_MONTHS (' 11-JAN-94 ' ,6) ' ' 11-JUL-9411-JUL-94 ''
NEXT_DAY (' 01-SEP-95 ' , ' FRIDAY ' )NEXT_DAY (' 01-SEP-95 ' , ' FRIDAY ' ) ' ' 08-SEP-65 '08-SEP-65 '
LAST_DAY(' 01-SEP-95 ')LAST_DAY(' 01-SEP-95 ') '' 30-SEP-95 '30-SEP-95 '
19.6774194
![Page 22: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/22.jpg)
Using Date FunctionsUsing Date Functions ROUND ('25-JUL-95', 'MONTH') 01-AUG-95ROUND ('25-JUL-95', 'MONTH') 01-AUG-95
ROUND (’25-JUL-95‘, ‘YEAR‘)ROUND (’25-JUL-95‘, ‘YEAR‘) 01-JAN-96 01-JAN-96
TRUNC (’25-JUL-95‘, ‘MONTH‘) 01-JUL-95TRUNC (’25-JUL-95‘, ‘MONTH‘) 01-JUL-95
TRUNC (’25-JUL-95‘, ‘YEAR‘) 01-JAN-95TRUNC (’25-JUL-95‘, ‘YEAR‘) 01-JAN-95
![Page 23: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/23.jpg)
Conversion FunctionsConversion Functions
Datatype
conversion
Implicit datatype
conversion
Explicit datatype
conversion
![Page 24: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/24.jpg)
Implicit Datatype ConversionImplicit Datatype Conversion
For assignments,the Oracle Server can For assignments,the Oracle Server can automatically convert the following:automatically convert the following:
From To
VARCHAR2 or CHAR NUMBER
VARCHAR2 or CHAR DATE
NUMBER VARCHAR2
DATE VARCHAR2
![Page 25: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/25.jpg)
Implicit Datatype ConversionImplicit Datatype Conversion
For expression evaluation ,the Oracle Server can For expression evaluation ,the Oracle Server can automatically convert the following:automatically convert the following:
From To
VARCHAR2 or CHAR NUMBER
VARCHAR2 or CHAR DATE
![Page 26: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/26.jpg)
Explicit Datatype ConversionExplicit Datatype Conversion
TO_NUMBER TO_DATE
NUMBER CHARACTER DATE
TO_CHAR TO_CHAR
![Page 27: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/27.jpg)
TO_CHAR Function with DatesTO_CHAR Function with DatesTO_CHAR (date, ‘ fmt’ )
The format model:
•Must be enclosed in single quotation marks and is case sensitive
•Can include any valid date format element
•Has an fm element to remove padded blank or suppress leading zeros
•Is separated from the date value by a comma
![Page 28: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/28.jpg)
Elements of Date Format ModelElements of Date Format Model
YYYY Full year in numbers
YEAR Year spelled out
MM Two-digit value for month
MONTH Full name of the month
DY Three-letter abbreviation of the day of the week
DAY Full name of the day
![Page 29: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/29.jpg)
Elements of Date Format ModelElements of Date Format Model
Time elements format the time portion of Time elements format the time portion of the date:the date:
Add character strings by enclosing them in Add character strings by enclosing them in double quotation marks.double quotation marks.
Number suffixes spell out number.Number suffixes spell out number.
HH24 : MI : SS AM 15:45:32 PM
DD “OF” MONTH 12 of OCTOBER
ddspth fourteenth
![Page 30: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/30.jpg)
Using TO_CHAR FunctionUsing TO_CHAR Functionwith Dateswith Dates
SQL> SELECT ename, 2 TO_CHAR (hiredate, 'fmDD Month YYYY') HIREDATE 3 FROM emp;
ENAME HIREDATE------------- -----------------KING 17 November 1981BLAKE 1 May 1981CLARK 9 June 1981JONES 2 April 1981MARTIN 28 September 1981 ALLEN 20 February 1981…..14 rows selected
![Page 31: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/31.jpg)
TO_CHAR Function with NumbersTO_CHAR Function with Numbers
Use these formats with the TO_CHAR Use these formats with the TO_CHAR function to display a number value as a function to display a number value as a character:character:
TO_CHAR (date, ‘ fmt’ )
9 Represents a number0 Forces a Zero to be displayed
$ Places a floating dollar sign
L Uses the floating local currency symbol. Prints a decimal point, Prints a thousand indicator
![Page 32: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/32.jpg)
Using TO_CHAR FunctionUsing TO_CHAR Functionwith Numberswith Numbers
SQL> SELECT TO_CHAR (sal,'$99,999') SALARY 2 FROM emp 3 WHERE ename = 'SCOTT';
SALARY------------ $3,000
![Page 33: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/33.jpg)
TO_NUMBER and TO_DATETO_NUMBER and TO_DATEFunctionsFunctions
Convert a character string to a numberConvert a character string to a number
format using the TO_NUMBER functionformat using the TO_NUMBER function
Convert a character string to a date Convert a character string to a date
format using the TO_DATE functionformat using the TO_DATE function
TO_NUMBER (char [ , ‘fmt ‘ ] )
TO_DATE (char [ , ‘fmt ‘ ] )
![Page 34: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/34.jpg)
NVL FunctionNVL Function
Converts null to an actual valueConverts null to an actual value Datatypes thatDatatypes that can be used are date, can be used are date,
character,and number.character,and number. Datatypes must matchDatatypes must match
- NVL (comm,0)- NVL (comm,0)
- NVL (hiredate, ‘01-JAN-97’)- NVL (hiredate, ‘01-JAN-97’)
- - NVL (job, ‘No job yet’)NVL (job, ‘No job yet’)
![Page 35: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/35.jpg)
Using the NVL FunctionUsing the NVL FunctionSQL> SELECT ename , sal , comm , (sal*12)+NVL (comm , 0 ) 2 FROM emp;
ENAME SAL COMM (SAL*12)+NVL(COMM,0)------------- ---------- ------------- -----------------------------------KING 5000 60000BLAKE 2850 34200CLARK 2450 29400JONES 2975 35700MARTIN 1250 1400 16400ALLEN 1600 300 19500…...14 rows selected.
![Page 36: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/36.jpg)
DECODE FunctionDECODE Function
Facilitates conditional inquiries by doing the Facilitates conditional inquiries by doing the
Work of a CASE or IF-THEN-ELSEWork of a CASE or IF-THEN-ELSE
statementstatement
DECODE ( col / expression , search1 , result1[, search2 , result2 , ….. , ][, default ] )
![Page 37: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/37.jpg)
Using the DECODE FunctionUsing the DECODE FunctionSQL> SELECT job , sal , 2 DECODE (job , 'ANALYST' , SAL*1.1 , 3 'CLERK' , SAL*1.15, 4 'MANAGER' , SAL*1.20, 5 SAL) 6 REVISED_SALARY 7 FROM emp;
JOB SAL REVISED_SALARY----------------- ---------- ---------------------------PRESIDENT 5000 5000MANAGER 2850 3420MANAGER 2450 2940….14 rows selected.
![Page 38: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/38.jpg)
Using the DECODE FunctionUsing the DECODE Function
Display the applicable tax rate for each Display the applicable tax rate for each
Employee in department 30.Employee in department 30.
SQL> SELECT ename , sal , 2 DECODE ( TRUNC (sal / 100 , 0 ) , 3 0 , 0.00 , 4 1 , 0.09 , 5 2 , 0.20 , 6 3 , 03.0 , 7 4 , 0.40 , 8 5 , 0.42 , 9 6 , 0.44 , 10 0.45 ) TAX_RATE 11 FROM emp 12 WHERE deptno = 30 ;
![Page 39: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/39.jpg)
Nesting FunctionsNesting Functions
SQL> SELECT ename, 2 NVL ( TO_CHAR (mgr) , ‘NO Manager ‘ ) 3 FROM emp; 4 WHERE mgr IS NULL ;
ENAME NVL ( TO_CHAR (MGR) , ‘NOMANAGER ‘ )
------------ --------------------------------------------------------------- KING No Manager
![Page 40: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/40.jpg)
SummarySummary
Use functions to do the following:Use functions to do the following: Perform calculations on dataPerform calculations on data Modify individual data itemsModify individual data items Manipulate output for groups of rowsManipulate output for groups of rows Alter date formats for displayAlter date formats for display Convert column datatypesConvert column datatypes
![Page 41: Single – Row Functions](https://reader033.vdocument.in/reader033/viewer/2022052414/5681369a550346895d9e32ad/html5/thumbnails/41.jpg)
Practice OverviewPractice Overview
Creating queries that require the use of Creating queries that require the use of numeric , character , and date functionsnumeric , character , and date functions
Using concatenation with functionsUsing concatenation with functions Writing case-insensitive queries to test the Writing case-insensitive queries to test the
usefulness of character functionsusefulness of character functions Performing calculations of years and Performing calculations of years and
months of service for an employee months of service for an employee Determining the review date for an Determining the review date for an
employeeemployee