Professional Documents
Culture Documents
Single-Row Functions
Copyright
Objectives
After completing this lesson, you should
be able to do the following:
Describe various types of functions
available in SQL
Use character, number, and date
functions in SELECT statements
Describe the use of conversion
functions
3-2
Copyright
SQL Functions
Input
Function
arg 1
arg 2
Function
performs action
Result
value
arg n
3-3
Copyright
Output
Functions
Single-row
functions
3-4
Copyright
Multiple-row
functions
Single-Row Functions
Manipulate data items
Accept arguments and return one value
Act on each row returned
Return one result per row
May modify the datatype
Can be nested
function_name
function_name (column|expression,
(column|expression, [arg1,
[arg1, arg2,...])
arg2,...])
3-5
Copyright
Single-Row Functions
Character
General
Single-row
functions
Conversion
3-6
Copyright
Number
Date
Character Functions
Character
functions
Case conversion
functions
LOWER
UPPER
INITCAP
3-7
Copyright
Character manipulation
functions
CONCAT
SUBSTR
LENGTH
INSTR
LPAD, RPAD
Trim
Ltrim, Rtrim
Replace
Result
SQL COURSE
3-8
Copyright
ENAME
DEPTNO
ENAME
DEPTNO
------------------- ----------------BLAKE
30
BLAKE
30
Copyright
Result
Str
LENGTH('String')
INSTR('String', 'r')
LPAD(sal,10,'*')
******5000
MITH
Replace(toy,y,let)
3-10
Copyright
3-11
CONCAT(ENAME,JOB)
LENGTH(ENAME) INSTR(ENAME,'A')
------------------- ------------- ---------------MARTINSALESMAN
6
2
ALLENSALESMAN
5
1
TURNERSALESMAN
6
0
WARDSALESMAN
4
2
Copyright
Number Functions
ROUND: Rounds value to specified
decimal
ROUND(45.926, 2) 45.93
TRUNC:Truncates value to specified
decimal
TRUNC(45.926, 2) 45.92
MOD: Returns remainder of division
Copyright
3-13
Copyright
3-14
Copyright
ENAME
SAL
COMM MOD(SAL,COMM)
---------- --------- --------- ------------MARTIN
1250
1400
1250
ALLEN
1600
300
100
TURNER
1500
0
1500
WARD
1250
500
250
3-15
Copyright
3-16
Copyright
3-17
Copyright
ENAME
---------KING
CLARK
MILLER
3-18
WEEKS
--------830.93709
853.93709
821.36566
Copyright
Date Functions
3-19
Function
Description
MONTHS_BETWEEN
Number of months
between two dates
ADD_MONTHS
NEXT_DAY
LAST_DAY
ROUND
Round date
TRUNC
Truncate date
Copyright
'11-JUL-94'
NEXT_DAY ('01-SEP-95','FRIDAY')
'08-SEP-95'
LAST_DAY('01-SEP-95')
'30-SEP-95'
3-20
Copyright
3-21
Copyright
3-22
Copyright
Conversion Functions
Datatype
conversion
Implicit datatype
conversion
3-23
Copyright
Explicit datatype
conversion
To
VARCHAR2 or CHAR
NUMBER
VARCHAR2 or CHAR
DATE
NUMBER
VARCHAR2
DATE
VARCHAR2
3-24
Copyright
To
VARCHAR2 or CHAR
NUMBER
VARCHAR2 or CHAR
DATE
3-25
Copyright
NUMBER
CHARACTER
TO_CHAR
3-26
Copyright
TO_DATE
TO_CHAR
DATE
Copyright
YEAR
MM
MONTH
DY
DAY
3-28
Copyright
15:45:32 PM
12 of OCTOBER
3-29
fourteenth
Copyright
Copyright
3-31
9
0
Represents a number
Forces a zero to be displayed
L
.
,
TO_CHAR(sal,'$99,999') SALARY
emp
ename = 'SCOTT';
SALARY
-------$3,000
3-32
Copyright
3-33
Copyright
RR Date Format
Current Year
1995
1995
2001
2001
Specified Date
27-OCT-95
27-OCT-17
27-OCT-17
27-OCT-95
RR Format
1995
2017
2017
1995
YY Format
1995
1917
2017
2095
3-34
049
5099
049
5099
Copyright
NVL Function
Converts null to an actual value
Datatypes that can be used are date,
character, and number.
Datatypes must match
NVL(comm,0)
NVL(hiredate,'01-JAN-97')
NVL(job,'No Job Yet')
3-35
Copyright
3-36
Copyright
NVL2(expr1,expr2,expr3)
If exp1 is not null it returns exp2
If exp1 is null it returns exp3
Example:
Select nvl2(comm,comm+sal,sal) from
emp
3-37
Copyright
NULLIF(expr1,expr2)
Compares 2 expressions and returns null
if they are equal or the first expression if
they are not equal.
Example:
Select
ename,length(ename),job,length(job),
NULLIF(ename,job) from emp;
3-38
Copyright
Coalesce(expr1,expr2..exprn)
Shows the first not null expressions
Example:
Select coalesce(comm,sal,job) from emp;
3-39
Copyright
CASE Expressions
Example:
Select ename,job,sal,
Case job when ANALYST then sal+1500
when CLERK then sal+2000
when MANAGER then sal+2500
Else
Sal
End Revised Salary from emp;
3-40
Copyright
Case Expression
Select ename,job,sal,
Case sal when 1000 then sal+1500
when 5000 then sal+2000
when 3000 then sal+2500
End "Revised Salary" from emp
3-41
Copyright
DECODE Function
Facilitates conditional inquiries by doing
the work of a CASE or IF-THEN-ELSE
statement
DECODE(col/expression,
DECODE(col/expression, search1,
search1, result1
result1
[,
[, search2,
search2, result2,...,]
result2,...,]
[,
[, default])
default])
3-42
Copyright
Copyright
3-44
Copyright
Copyright
Nesting Functions
Single-row functions can be nested to
any level.
Nested functions are evaluated from
deepest level to the least-deep level.
F3(F2(F1(col,arg1),arg2),arg3)
Step 1 = Result 1
Step 2 = Result 2
Step 3 = Result 3
3-46
Copyright
Nesting Functions
SQL> SELECT
2
3 FROM
4 WHERE
ename,
NVL(TO_CHAR(mgr),'No Manager')
emp
mgr IS NULL;
ENAME
NVL(TO_CHAR(MGR),'NOMANAGER')
---------- ----------------------------KING
No Manager
3-47
Copyright
Summary
Use functions to do the following:
Perform calculations on data
Modify individual data items
Manipulate output for groups of rows
Alter date formats for display
Convert column datatypes
3-48
Copyright
Practice Overview
Creating queries that require the use of numeric, character, and date functions
Using concatenation with functions
Writing case-insensitive queries to test the usefulness of character functions
Performing calculations of years and months of service for an employee
Determining the review date for an employee
3-49
Copyright