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

SQL 3

The document describes various types of single-row functions available in SQL including character, number, and date functions. It provides examples of using character functions like UPPER and LOWER, number functions like ROUND and TRUNC, and date functions like SYSDATE and ADD_MONTHS in SELECT statements.

Uploaded by

Sara Zara
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

SQL 3

The document describes various types of single-row functions available in SQL including character, number, and date functions. It provides examples of using character functions like UPPER and LOWER, number functions like ROUND and TRUNC, and date functions like SYSDATE and ADD_MONTHS in SELECT statements.

Uploaded by

Sara Zara
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 38

Single-Row Functions

Objectives

• After completing this lesson, you should


be able to do the following:
–– Describe
Describe various
various types
types of
of functions
functions available
available
in
in SQL
SQL
–– Use
Use character,
character, number,
number, and
and date
date functions
functions in
in
SELECT
SELECT statements
statements
–– Describe
Describe the
the use
use of
of conversion
conversion functions
functions
SQL Functions

Input Output
Function

arg 1 Function
performs action
arg 2
Result
value

arg n
Two Types of SQL Functions

Functions

Single-row Multiple-row
functions functions
Single-Row Functions
–– Manipulate
Manipulate data
data items
items
–– Accept
Accept arguments
arguments andand return
return one
one value
value
–– Act
Act on
on each
each row
row returned
returned
–– Return
Return one
one result
result per
per row
row
–– May
May modify
modify the
the datatype
datatype
–– Can
Can be
be nested
nested

function_name
function_name (column|expression,
(column|expression, [arg1,
[arg1, arg2,...])
arg2,...])
Single-Row Functions

Character

General Number
Single-row
functions

Conversion Date
Character Functions
Character
functions

Case conversion Character manipulation


functions functions
LOWER CONCAT
UPPER SUBSTR
INITCAP LENGTH
INSTR
LPAD
Case Conversion Functions

• Convert case for character strings


Function Result
LOWER('SQL Course') sql course
UPPER('SQL Course') SQL COURSE
INITCAP('SQL Course') Sql Course
Using Case Conversion
Functions
• Display the employee number, name, and
department number for employee Blake.
SQL>
SQL> SELECT
SELECT empno,
empno, ename,
ename, deptno
deptno
22 FROM
FROM emp
emp
33 WHERE
WHERE ename
ename == 'blake';
'blake';
no
no rows
rows selected
selected

SQL> SELECT empno, ename, deptno


2 FROM emp
3 WHERE LOWER(ename) = 'blake';

EMPNO
EMPNO ENAME
ENAME DEPTNO
DEPTNO
---------
--------- ----------
---------- ---------
---------
7698
7698 BLAKE
BLAKE 30
30
Character Manipulation
Functions
• Manipulate character strings
Function Result
CONCAT('Good', 'String') GoodString
SUBSTR('String',1,3) Str
LENGTH('String') 6
INSTR('String', 'r') 3
LPAD(sal,10,'*') ******5000
Using the Character
Manipulation 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')


---------- ------------------- ------------- ----------------
MARTIN MARTINSALESMAN 6 2
ALLEN ALLENSALESMAN 5 1
TURNER TURNERSALESMAN 6 0
WARD WARDSALESMAN 4 2
Number Functions
–– ROUND:Rounds
ROUND:Rounds value
value to
to specified
specified decimal
decimal
ROUND(45.926,
ROUND(45.926, 2)
2) 45.93
45.93
–– TRUNC:Truncates
TRUNC:Truncates value
value to
to specified
specified decimal
decimal
TRUNC(45.926,
TRUNC(45.926, 2)
2) 45.92
45.92
–– MOD:
MOD: Returns
Returns remainder
remainder of
of
division
division
MOD(1600,
MOD(1600, 300)
300) 100
100
Using 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
Using the TRUNC Function

SQL> SELECT TRUNC(45.923,2), TRUNC(45.923),


2 TRUNC(45.923,-1)
3 FROM DUAL;

TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1)


--------------- ------------- ---------------
45.92 45 40
Using the MOD Function
• Calculate the remainder of the ratio of
salary to commission for all employees
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)


---------- --------- --------- -------------
MARTIN 1250 1400 1250
ALLEN 1600 300 100
TURNER 1500 0 1500
WARD 1250 500 250
Working with Dates
–– Oracle
Oracle stores
stores dates
dates inin an
an internal
internal numeric
numeric
format:
format: century,
century, year,
year, month,
month, day,
day, hours,
hours,
minutes,
minutes, seconds.
seconds.
–– The
The default
default date
date format
format is
is DD-MON-YY.
DD-MON-YY.
–– SYSDATE
SYSDATE is is aa function
function returning
returning date
date and
and
time.
time.
–– DUAL
DUAL is is aa dummy
dummy tabletable used
used to
to view
view
SYSDATE.
SYSDATE.
Arithmetic with Dates

–– Add
Add or or subtract
subtract aa number
number to
to or
or from
from aa date
date
for
for aa resultant
resultant date
date value.
value.

–– Subtract
Subtract two
two dates
dates to
to find
find the
the number
number of
of
days
days between
between those
those dates.
dates.

–– Add
Add hours
hours to
to aa date
date by
by dividing
dividing the
the number
number
of
of hours
hours by
by 24.
24.
Using Arithmetic Operators
with Dates
SQL> SELECT ename, (SYSDATE-hiredate)/7 WEEKS
2 FROM emp
3 WHERE deptno = 10;

ENAME WEEKS
---------- ---------
KING 830.93709
CLARK 853.93709
MILLER 821.36566
Date Functions
Function Description

MONTHS_BETWEEN Number of months


between two dates
ADD_MONTHS Add calendar months to
date
NEXT_DAY Next day of the date
specified

LAST_DAY Last day of the month


ROUND Round date

TRUNC Truncate date


Using Date Functions
• MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')
19.6774194

• ADD_MONTHS ('11-JAN-94',6) '11-JUL-94'

• NEXT_DAY ('01-SEP-95','FRIDAY') '08-SEP-95'

• LAST_DAY('01-SEP-95') '30-SEP-95'
Using Date Functions

• ROUND('25-JUL-95','MONTH') 01-AUG-95

• ROUND('25-JUL-95','YEAR') 01-JAN-96
• TRUNC('25-JUL-95','MONTH') 01-JUL-95
• TRUNC('25-JUL-95','YEAR') 01-JAN-
95
Datatype Conversion Function
TO_NUMBER TO_DATE

NUMBER CHARACTER DATE

TO_CHAR TO_CHAR
TO_CHAR Function with Dates
TO_CHAR(date,
TO_CHAR(date, 'fmt')
'fmt')

• The format model:


–– Must
Must bebe enclosed
enclosed inin single
single quotation
quotation marks
marks and
and is
is
case
case sensitive
sensitive
–– Can
Can include
include any
any valid
valid date
date format
format element
element
–– Has
Has an
an fm
fm element
element to
to remove
remove padded
padded blanks
blanks or
or
suppress
suppress leading
leading zeros
zeros
–– Is
Is separated
separated from
from the
the date
date value
value by
by aa comma
comma
Elements 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


Three-letter abbreviation of the
DY
day of the week
DAY Full name of the day
Elements of Date Format Model

• Time elements format the time portion of


the date.
HH24:MI:SS AM 15:45:32 PM
• Add character strings by enclosing them
in double quotation marks.
DD "of" MONTH 12 of OCTOBER
• Number suffixes spell out numbers.
ddspth fourteenth
Using TO_CHAR Function
with Dates
SQL> SELECT ename,
2 TO_CHAR(hiredate, 'fmDD Month YYYY') HIREDATE
3 FROM emp;

ENAME HIREDATE
---------- -----------------
KING 17 November 1981
BLAKE 1 May 1981
CLARK 9 June 1981
JONES 2 April 1981
MARTIN 28 September 1981
ALLEN 20 February 1981
...
14 rows selected.
TO_CHAR Function with Numbers
TO_CHAR(number,
TO_CHAR(number, 'fmt')
'fmt')
• Use these formats with the TO_CHAR
function to display a number value as a
character:
9 Represents a number
0 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
Using TO_CHAR Function
with Numbers
SQL> SELECT TO_CHAR(sal,'$99,999') SALARY
2 FROM emp
3 WHERE ename = 'SCOTT';

SALARY
--------
$3,000
TO_NUMBER and TO_DATE
Functions
–– Convert
Convert aa character
character string
string to
to aa number
number
format
format using
using the
the TO_NUMBER
TO_NUMBER functionfunction

TO_NUMBER(char[,
TO_NUMBER(char[, 'fmt'])
'fmt'])

•• Convert
Convert aa character
character string
string to
to aa date
date
format
format using
using the
the TO_DATE
TO_DATE function
function

TO_DATE(char[,
TO_DATE(char[, 'fmt'])
'fmt'])
NVL Function
• Converts null to an actual value
–– Datatypes
Datatypes that
that can
can be
be used
used are
are date,
date,
character,
character, and
and number.
number.
–– Datatypes
Datatypes must
must match
match
•• NVL(comm,0)
NVL(comm,0)
•• NVL(hiredate,'01-JAN-97')
NVL(hiredate,'01-JAN-97')
•• NVL(job,'No
NVL(job,'No Job
Job Yet')
Yet')
Using the NVL Function

SQL> SELECT ename, sal, comm, (sal*12)+NVL(comm,0)


2 FROM emp;

ENAME SAL COMM (SAL*12)+NVL(COMM,0)


---------- --------- --------- --------------------
KING 5000 60000
BLAKE 2850 34200
CLARK 2450 29400
JONES 2975 35700
MARTIN 1250 1400 16400
ALLEN 1600 300 19500
...
14 rows selected.
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])
Using the DECODE Function

SQL> 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 5000
MANAGER 2850 3420
MANAGER 2450 2940
...
14 rows selected.
Using the DECODE Function
• Display the applicable tax rate for each
employee in department 30.
SQL> SELECT ename, sal,
2 DECODE(TRUNC(sal/1000, 0),
3 0, 0.00,
4 1, 0.09,
5 2, 0.20,
6 3, 0.30,
7 4, 0.40,
8 5, 0.42,
9 6, 0.44,
10 0.45) TAX_RATE
11 FROM emp
12 WHERE deptno = 30;
Nesting Functions
–– Single-row
Single-row functions
functions can
can be
be nested
nested to
to any
any level.
level.
–– Nested
Nested functions
functions are
are evaluated
evaluated from
from deepest
deepest
level
level to
to the
the least-deep
least-deep level.
level.

F3(F2(F1(col,arg1),arg2),arg3)

Step 1 = Result 1
Step 2 = Result 2
Step 3 = Result 3
Nesting 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
Summary

• Use functions to do the following:


–– Perform
Perform calculations
calculations on
on data
data
–– Modify
Modify individual
individual data
data items
items
–– Manipulate
Manipulate output
output for
for groups
groups of
of rows
rows
–– Alter
Alter date
date formats
formats for
for display
display
–– Convert
Convert column
column datatypes
datatypes
Practice Overview
–– Creating
Creating queries
queries that
that require
require the
the use
use of
of numeric,
numeric,
character,
character, and
and date
date functions
functions
–– Using
Using concatenation
concatenation with
with functions
functions
–– Writing
Writing case-insensitive
case-insensitive queries
queries to
to test
test the
the usefulness
usefulness
of
of character
character functions
functions
–– Performing
Performing calculations
calculations ofof years
years and
and months
months of
of service
service
for
for an
an employee
employee
–– Determining
Determining thethe review
review date
date for
for an
an employee
employee

You might also like