Presentation is loading. Please wait.

Presentation is loading. Please wait.

Single Row Functions Week 2. Objectives –Describe types of single row functions in SQL –Describe and use character, number, date, general and conversion.

Similar presentations


Presentation on theme: "Single Row Functions Week 2. Objectives –Describe types of single row functions in SQL –Describe and use character, number, date, general and conversion."— Presentation transcript:

1 Single Row Functions Week 2

2 Objectives –Describe types of single row functions in SQL –Describe and use character, number, date, general and conversion SQL functions

3 Functions arg 1 arg 2 arg n Function Result All functions input 0, 1 or more arguments and output a single result. 2 basic types in SQL: Single row and Group

4 Single Row Functions –Act on each individual row selected –Return one result per row retrieved from table –Can be nested –Function can be used as part of expression in: SELECT clause, WHERE clause, ORDER BY clause, … –Argument for function may be any expression (literals, columns, arithmetic operators, …

5 Conversion Character Number Date General Single-rowfunctions Types of Single Row Functions

6 Characterfunctions LOWERUPPERINITCAP CONCATSUBSTRLENGTHINSTRLPADTRIM Case conversion functions Character manipulation functions Single Row Character Functions

7 Case Conversion Functions FunctionResult LOWER( ' Intro to SQL ' ) UPPER( ' Intro to SQL ' ) INITCAP( ' Intro to SQL ' ) intro to sql INTRO TO SQL Intro to Sql – Convert case of character string data – Useful for matching when unsure of case used for column’s data or when case varies by row by row – UPPER: converts all characters to upper case – LOWER: converts all characters to lower case – INITCAP: converts first character of each word to upper case and remaining to lower case

8 SQL> SELECTemployee_id, last_name, department_id FROMemployees WHERE last_name = ‘king'; no rows selected SQL> SELECTemployee_id, last_name, department_id FROMemployees WHERE last_name = ‘king'; no rows selected EMPLOYEE_ID LAST_NAME DEPARTMENT_ID 100 King 90 EMPLOYEE_ID LAST_NAME DEPARTMENT_ID 100 King 90 SQL> SELECTemployee_id, last_name, department_id FROMemployees WHERE LOWER(last_name) = ‘king'; SQL> SELECTemployee_id, last_name, department_id FROMemployees WHERE last_name = UPPER(‘King‘); no rows selected SQL> SELECTemployee_id, last_name, department_id FROMemployees WHERE last_name = UPPER(‘King‘); no rows selected Case Conversion Examples Display employee number, name and department number for employees named King

9 EMPLOYEE_ID LAST_NAME DEPARTMENT_ID 100 King 90 EMPLOYEE_ID LAST_NAME DEPARTMENT_ID 100 King 90 SQL> SELECTemployee_id, last_name, department_id FROMemployees WHERE INITCAP(last_name) = ‘King'; Case Conversion Examples (ctd) Display employee number, name and department number for employees named King EMPLOYEE_ID LAST_NAME DEPARTMENT_ID 100 King 90 EMPLOYEE_ID LAST_NAME DEPARTMENT_ID 100 King 90 SQL> SELECTempno, last_name, department_id FROMemployees WHERE UPPER(last_name) = ‘KING';

10 Case Conversion (ctd) Recommended: always use a case conversion function with column character data (except for unusual circumstances where case is significant in the data) and also always use a case conversion function with character substitution variables (except for unusual circumstances where case is significant in the data) EMPLOYEE_ID LAST_NAME DEPARTMENT_ID 100 King 90 EMPLOYEE_ID LAST_NAME DEPARTMENT_ID 100 King 90 SQL> SELECTemployee_id, last_name, department_id FROMemployees WHERE UPPER(last_name) = UPPER(‘&last_name’);

11 Character Manipulation Functions CONCAT(string1, string2)  Joins 2 character strings together (You are limited to using only two parameters with CONCAT) Character Manipulation Functions SUBSTR(string, start_position, length)  Extracts a string of determined length from a specified starting position Character Manipulation Functions LENGTH(string)  Shows the length of a string as a numeric value Character Manipulation Functions INSTR(string, character)  Finds numeric position of first occurrence of a specified character Character Manipulation Functions LPAD(string, length, character)  Places occurrences of a character (a blank is the default character) to the left of a string to end up with a specified length of character string Character Manipulation Functions RPAD: pads a character value right-justified on a string Character Manipulation Functions TRIM([{LEADING | TRAILING | BOTH}] character FROM string): removes occurrences of a leading and/or trailing (default is both leading and trailing) character (a blank is the default character) from a string

12 CONCAT( ' Good ', ' Day ' ) SUBSTR( ' Good ',3,2) LENGTH( ' Good ' ) INSTR( ' Good ', ' o ' ) LPAD(last_name,20, ' * ' ) TRIM(‘$‘ FROM ‘$2,345‘) GoodDay od 4 2 ****************King 2,345 FunctionResult Examples using Character Manipulation Functions

13 Number Functions – Manipulate numeric values; frequently used functions include: ROUND, TRUNC, MOD ROUND(number, n): rounds number to n decimal places ROUND(43.826, 2)  43.83 ROUND(43.826, 0)  44 ROUND(43.826, -1)  40 TRUNC(number, n):truncates value to n decimal places TRUNC(43.826, 2)  43.82 TRUNC(43.826, 0)  43 TRUNC(43.826, -1)  40 MOD(number1, number2): returns remainder of number1 divided by number2 MOD(17, 3)  2

14 Date Functions – manipulate date data: most perform calculations on dates ADD_MONTHS(date, number): add or subtract a number of months from a date ADD_MONTHS(date, number): add or subtract a number of months from a date ADD_MONTHS(’22-JAN-01’,6)  22-JUL-01 MONTHS_BETWEEN(date1, date2) : number of months between dates MONTHS_BETWEEN(date1, date2) : number of months between dates MONTHS_BETWEEN(’22-JAN-01’, ’22-JUL-01)  -6 NEXT_DAY(date, day) returns the date for the next ‘day of the week’ from the date specified NEXT_DAY(date, day) returns the date for the next ‘day of the week’ from the date specified NEXT_DAY(’22-JAN-01’,’FRIDAY’)  26-JAN-01 LAST_DAY(date) returns the last day of the month for the date given LAST_DAY(date) returns the last day of the month for the date given LAST_DAY(’22-JAN-01’)  31-JAN-01

15 Date Functions (ctd) ROUND function can also be used on dates, rounding a date to the nearest month or year ROUND function can also be used on dates, rounding a date to the nearest month or year ROUND(’22-JAN-01’, ‘MONTH’)  01-FEB-01 ROUND(’22-JAN-01’,’YEAR’)  01-JAN-01 TRUNC function can also be used on dates, truncating a date to the nearest month or year TRUNC function can also be used on dates, truncating a date to the nearest month or year TRUNC(’22-JAN-01’, ‘MONTH’)  01-JAN-01 TRUNC(’22-JAN-01’,’YEAR’)  01-JAN-01

16 General Functions NVL(column, value): used to provide an actual value in place of a NULL value for a column NVL(column, value): used to provide an actual value in place of a NULL value for a column SELECT employee_id, sal, comm, (NVL(sal,1000) + NVL(comm,0)) AS COMPENSATION FROM employees DECODE(expression, condition1, result1 [, condition2, result2], … [, default]): operates similarly to an IF- THEN- ELSE statement in evaluating values in a column DECODE(expression, condition1, result1 [, condition2, result2], … [, default]): operates similarly to an IF- THEN- ELSE statement in evaluating values in a column SELECT employee_id, job, DECODE(job,’President’,1, ‘Manager’, 2, ‘Developer’, 3, ‘Analyst’, 3, ‘Clerk’, 4) AS “JOB RANKING” FROM employees SYSDATE: returns current system date SYSDATE: returns current system date SELECT employee_id, hiredate FROM employees WHERE hiredate < ADD_MONTHS(SYSDATE, – 6)

17 Conversion Functions many conversions in SQL occur implicitly, for example string || numeric  string many conversions in SQL occur implicitly, for example string || numeric  string however in some cases a conversion function must be used however in some cases a conversion function must be used TO_NUMBER(string, [format]): converts strings into numeric data - often used if numeric values have been stored using formatting of decimal points and numeric separators; format specifies format of input data TO_NUMBER(string, [format]): converts strings into numeric data - often used if numeric values have been stored using formatting of decimal points and numeric separators; format specifies format of input data TO_NUMBER(‘1,234.56’, ‘9,999.99’) TO_CHAR(numeric data, [‘format’]): converts numeric data to character data – normally used to format numeric data (if format is not large enough to represent data then # symbols will be shown); format specifies output format TO_CHAR(numeric data, [‘format’]): converts numeric data to character data – normally used to format numeric data (if format is not large enough to represent data then # symbols will be shown); format specifies output format TO_CHAR(sal, ‘$99,999.99’)

18 Conversion Functions(ctd) TO_CHAR(date data, [‘format’]): converts date data to character data – normally used to customize format of date data TO_CHAR(date data, [‘format’]): converts date data to character data – normally used to customize format of date data TO_CHAR(’22-JAN-01’, ‘DAY MONTH DD, YYYY’)  THURSDAY JANUARY 22, 2001 Date Format Symbols used in Date Conversion Day:Day of the week DY:Abbreviated day of the week DD: 2 digit day value MM: 2 digit month value MON:Abbreviated month name MONTH:Month name YYYY:4 digit year value YEAR:Year value in words Q:Quarter of the year (1 st – 4 th )

19 Conversion Functions (ctd) TO_DATE(string, ‘format’): converts strings into data in Oracle’s internal date format TO_DATE(string, ‘format’): converts strings into data in Oracle’s internal date format SELECT employee_id, hiredate FROM employees WHERE hiredate = TO_DATE(‘September 28, 1981’, ‘Month DD, YYYY’)

20 Nesting of Functions Single row function calls can be nested within each other Single row function calls can be nested within each other Innermost function is evaluated first Innermost function is evaluated first Example – show the review dates for all employees where review date is first Monday occurring 3 months after starting work: Example – show the review dates for all employees where review date is first Monday occurring 3 months after starting work: SELECT employee_id, NEXT_DAY(ADD_MONTHS(hiredate, 3), ‘MONDAY’) AS “FIRST REVIEW DATE”, (sal + NVL(comm,0)) AS COMPENSATION FROM employees

21 Querying Data Not Found in a Table Sometimes you may want to display data not stored in a table Sometimes you may want to display data not stored in a table However format of SELECT statement requires a FROM clause However format of SELECT statement requires a FROM clause In these situations refer to a small public table called DUAL which consists of one row of data for a single column and which therefore results in a single row of output In these situations refer to a small public table called DUAL which consists of one row of data for a single column and which therefore results in a single row of output Example: display today’s date: Example: display today’s date: SELECT SYSDATE FROM DUAL


Download ppt "Single Row Functions Week 2. Objectives –Describe types of single row functions in SQL –Describe and use character, number, date, general and conversion."

Similar presentations


Ads by Google