Single Row Functions - Islamic University of...
Transcript of Single Row Functions - Islamic University of...
![Page 1: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/1.jpg)
Lab 8
Single Row Functions
![Page 2: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/2.jpg)
SQL FUNCTIONS
Function
Input
arg 1
arg 2
arg n
Function performs
action
Output
Result
value
![Page 3: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/3.jpg)
SQL Functions Types
Single-row
functions
Multiple-row
functions
Return one result
per row
Return one result
per set of rows
SQL Functions
![Page 4: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/4.jpg)
Single-Row Functions
Manipulate data items
Accept arguments and return one value
Act on each row that is returned
Return one result per row
May modify the data type
Can be nested
Accept arguments that can be a column or an expression.
Can be used in SELECT, WHERE, and ORDER BY clauses.
function_name (column|expression, [arg2, arg3,...])
![Page 5: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/5.jpg)
Single-Row Functions
Conversion
Character
Number
Date
GeneralSingle-row
functions
![Page 6: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/6.jpg)
Character Functions
Character
functions
LOWER
UPPER
INITCAP
CONCAT
SUBSTR
LENGTH
INSTR
LPAD | RPAD
TRIM
REPLACE
Case-manipulation
functions
Character-manipulation
functions
![Page 7: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/7.jpg)
Case Manipulation Functions
LOWER: Converts mixed case or uppercase characterstring to lowercase.
UPPER: Converts mixed case or lowercase characterstring to uppercase.
INITCAP: Converts first letter of each word to uppercaseand remaining letters to lowercase.
![Page 8: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/8.jpg)
Case Manipulation Functions
Function Result
LOWER('SQL Course') sql course
UPPER('SQL Course') SQL COURSE
INITCAP('SQL Course') Sql Course
![Page 9: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/9.jpg)
SELECT employee_id, last_name, department_id
FROM employees
WHERE LOWER(last_name) = 'higgins';
Case Manipulation Functions
Display the employee number, name, and departmentnumber for employee Higgins:
SELECT employee_id, last_name, department_id
FROM employees
WHERE last_name = 'higgins';
no rows selected
![Page 10: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/10.jpg)
Character Manipulation Functions
CONCAT: Joins values together (You are limited to usingtwo parameters with CONCAT.)
SUBSTR: Extracts a string of determined length
LENGTH: Shows the length of a string as a numericvalue
INSTR: Finds numeric position of a named character
LPAD: Pads the character value right-justified
RPAD : Pads the character value left-justified
TRIM: Trims heading or trailing characters (or both) froma character string.
![Page 11: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/11.jpg)
Character Manipulation Functions
Function Result
CONCAT('Hello', 'World') HelloWorld
SUBSTR('HelloWorld',1,5) Hello
LENGTH('HelloWorld') 10
INSTR('HelloWorld', 'W') 6
LPAD(salary,10,'*') *****24000
RPAD(salary, 10, '*') 24000*****
REPLACE ('JACK and JUE','J','BL') BLACK and BLUE
TRIM('H' FROM 'HelloWorld') elloWorld
![Page 12: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/12.jpg)
SELECT employee_id, CONCAT(first_name, last_name) NAME,
job_id, LENGTH (last_name),
INSTR(last_name, 'a') "Contains 'a'?"
FROM employees
WHERE SUBSTR(job_id, 4) = 'REP';
Character Manipulation Functions
2
31 2
1
3
![Page 13: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/13.jpg)
Function Result
ROUND(45.926, 2) 45.93
TRUNC(45.926, 2) 45.92
MOD(1600, 300) 100
Number Functions
![Page 14: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/14.jpg)
SELECT ROUND(45.923,2), ROUND(45.923,0),
ROUND(45.923,-1)
FROM DUAL;
ROUND Function
DUAL is a dummy table that you can use to view results fromfunctions and calculations.
3
31 2
1 2
![Page 15: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/15.jpg)
TRUNC Function
SELECT ROUND(45.923,2), ROUND(45.923),
ROUND(45.923,-1)
FROM DUAL;
3
31 2
1 2
![Page 16: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/16.jpg)
SELECT last_name, salary, MOD(salary, 5000)
FROM employees
WHERE job_id = 'SA_REP';
MOD Function
For all employees with job title of Sales Representative,calculate the remainder of the salary after it is divided by 5,000.
![Page 17: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/17.jpg)
SELECT last_name, hire_date
FROM employees
WHERE hire_date < '01-FEB-88';
Working with Dates
The Oracle database stores dates in an internal numericformat: century, year, month, day, hours, minutes, andseconds.
The default date display format is DD-MON-RR.
SYSDATE is a date function that returns the current dateand time.
![Page 18: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/18.jpg)
Arithmetic with Dates
![Page 19: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/19.jpg)
SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS
FROM employees
WHERE department_id = 90;
Arithmetic Operators with Dates
![Page 20: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/20.jpg)
Date Functions
Function Result
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
![Page 21: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/21.jpg)
Using Date Functions
Function Result
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-FEB-95') '28-FEB-95'
![Page 22: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/22.jpg)
Assume SYSDATE = '25-JUL-03':
Function Result
ROUND(SYSDATE,'MONTH') 01-AUG-03
ROUND(SYSDATE ,'YEAR') 01-JAN-04
TRUNC(SYSDATE ,'MONTH') 01-JUL-03
TRUNC(SYSDATE ,'YEAR') 01-JAN-03
Using Date Functions
![Page 23: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/23.jpg)
Conversion Functions
Implicit data type
conversion
Explicit data type
conversion
Data type
conversion
![Page 24: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/24.jpg)
Implicit Data Type Conversion
For assignments, the Oracle server can automaticallyconvert the following:
From To
VARCHAR2 or CHAR NUMBER
VARCHAR2 or CHAR DATE
NUMBER VARCHAR2
DATE VARCHAR2
![Page 25: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/25.jpg)
Implicit Data Type Conversion
For expression evaluation, the Oracle Server canautomatically convert the following:
From To
VARCHAR2 or CHAR NUMBER
VARCHAR2 or CHAR DATE
Notes: CHAR to NUMBER conversions succeed only if the
character string represents a valid number.
CHAR to DATE conversions succeed only if the characterstring has the default format DD-MON-YY.
![Page 26: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/26.jpg)
Explicit Data Type Conversion
NUMBER CHARACTER
TO_CHAR
TO_NUMBER
DATE
TO_CHAR
TO_DATE
![Page 27: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/27.jpg)
TO_CHAR Function with Dates
The format model:
• Must be enclosed by single quotation marks
• Is case-sensitive
• Can include any valid date format element
• Has an fm element to remove padded blanks or suppress leading zeros
• Is separated from the date value by a comma
TO_CHAR(date,'format_model')
![Page 28: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/28.jpg)
Elements of the Date Format Model
Element Result
YYYY Full year in numbers
YEAR Year spelled out (in English)
MM Two-digit value for month
MONTH Full name of the month
MON Three-letter abbreviation of the month
DY Three-letter abbreviation of the day of the week
DAY Full name of the day of the week
DD Numeric day of the month
![Page 29: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/29.jpg)
Elements of the Date Format Model
• Time elements format the time portion of the date:
• Add character strings by enclosing them in double quotation marks:
• Number suffixes spell out numbers:
DD "of" MONTH 12 of OCTOBER
ddspth fourteenth
HH24:MI:SS AM 15:45:32 PM
![Page 30: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/30.jpg)
TO_CHAR Function with Dates
![Page 31: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/31.jpg)
TO_CHAR Function with Numbers
These are some of the format elements that you can usewith the TO_CHAR function to display a number value as acharacter:
Element Result
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 comma as thousands indicator
TO_CHAR(number, 'format_model')
![Page 32: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/32.jpg)
SELECT TO_CHAR(salary, '$99,999.99') SALARY
FROM employees
WHERE last_name = 'Ernst';
TO_CHAR Function with Numbers
![Page 33: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/33.jpg)
NOTES• The Oracle Server rounds the stored decimal value to the
number of decimal spaces provided in the format model.
• The Oracle Server displays a string of pound signs (#) in placeof a whole number whose digits exceed the number of digitsprovided in the format model.
![Page 34: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/34.jpg)
TO_NUMBER and TO_DATE Functions
• Convert a character string to a number format using theTO_NUMBER function:
• Convert a character string to a date format using theTO_DATE function:
TO_NUMBER(char[,'format_model'])
TO_DATE(char[,'format_model'])
![Page 35: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/35.jpg)
TO_DATE
![Page 36: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/36.jpg)
General Functions
The following functions work with any data type andpertain to using NULLs:
NVL (expr1, expr2)
NVL2 (expr1, expr2, expr3)
NULLIF (expr1, expr2)
![Page 37: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/37.jpg)
NVL Function
Converts a NULL value to an actual value:
Data types that can be used are date, character,and number.
Data types must match:
NVL(commission_pct,0)
NVL(hire_date,'01-JAN-97')
NVL(job_id,'No Job Yet')
![Page 38: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/38.jpg)
SELECT last_name, salary, NVL(commission_pct, 0),
(salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL
FROM employees;
1
1 2
2
NVL Function
![Page 39: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/39.jpg)
SELECT last_name, salary, commission_pct,
NVL2(commission_pct,
'SAL+COMM', 'SAL') income
FROM employees WHERE department_id IN (50, 80);
1 2
2
1
NVL2 Function
![Page 40: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/40.jpg)
SELECT first_name, LENGTH(first_name) "expr1",
last_name, LENGTH(last_name) "expr2",
NULLIF(LENGTH(first_name), LENGTH(last_name)) result
FROM employees;
NULLIF Function
…
1
2
3
1 2 3
![Page 41: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/41.jpg)
Nesting Functions
• Single-row functions can be nested to any level.
• Nested functions are evaluated from the deepest level tothe least deep level.
F3(F2(F1(col,arg1),arg2),arg3)
Step 1 = Result 1
Step 2 = Result 2
Step 3 = Result 3
![Page 42: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/42.jpg)
SELECT last_name,
UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 8), '_US'))
FROM employees
WHERE department_id = 60;
Nesting Functions
![Page 43: Single Row Functions - Islamic University of Gazasite.iugaza.edu.ps/hmasry/files/Lab-8-SQL-Single-Row-Functions.pdf · Single-Row Functions Manipulate data items Accept arguments](https://reader034.fdocuments.in/reader034/viewer/2022042106/5e8565bad043234e0f698b6f/html5/thumbnails/43.jpg)
THANK YOU