Vous êtes sur la page 1sur 27

FUNCTIONS

Aggregating Data Using Group Functions

What Are Group Functions? Group functions operate on sets of rows


to give one result per group. EMPLOYEES

The maximum salary in the EMPLOYEES table.

Types of Group Functions


AVG COUNT MAX MIN SUM All group functions ignores Null values

Group Functions Syntax

SELECT FROM [WHERE [GROUP BY [ORDER BY

[column,] group_function(column), ... table condition] column] column];

Using the AVG and SUM Functions


You can use AVG and SUM for numeric data.
SELECT AVG(SAL), MAX(SAL), MIN(SAL), SUM(SAL)

FROM
WHERE

EMP
JOB LIKE '%MAN%';

Using the MIN ,MAX and Count Functions


You can use MIN and MAX for any data type.
SELECT MIN(HIREDATE), MAX(HIREDATE)

FROM

employees;

COUNT(*) returns the number of rows in a table.


SELECT COUNT(*)
FROM WHERE EMP DEPTNO = 10;

Using the DISTINCT Keyword

COUNT(DISTINCT expr) returns the number of distinct non-null values of the expr. Display the number of distinct department values in the EMPLOYEES table.

SELECT COUNT(DISTINCT DEPTNO) FROM EMP;

Group functions ignore null values in the column.


SELECT AVG(COMM) FROM EMP;

Group Functions and Null Values

The NVL function forces group functions to include null values.


SELECT AVG(NVL(COMM, 0)) FROM EMP;

Single-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 data type Can be nested Accept arguments which can be a column or an expression

function_name [(arg1, arg2,...)]

Single-Row Functions
Character

General

Single-row functions

Number

Conversion

Date

Character Functions
Character functions

Case-manipulation functions
LOWER UPPER INITCAP

Character-manipulation functions
CONCAT SUBSTR LENGTH INSTR LPAD | RPAD TRIM REPLACE

Case Manipulation Functions


These 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 Manipulation Display the employee number, Functions name, and department number
for employee Higgins:
SELECT EMPNO, ENAME, DEPTNO FROM EMP WHEREENAME=smith'; no rows selected SELECT EMPNO, ENAME, DEPTNO FROM EMP WHERELOWER(ENAME)=smith';

Character-Manipulation Functions

These functions manipulate character strings:


Function CONCAT('Hello', 'World') SUBSTR('HelloWorld',1,5) LENGTH('HelloWorld') INSTR('HelloWorld', 'W') LPAD(salary,10,'*') RPAD(salary, 10, '*') TRIM('H' FROM 'HelloWorld') Result HelloWorld Hello 10 6 *****24000 24000***** elloWorld

Using the CharacterManipulation Functions


SELECT EMPNO, CONCAT(ENAME,JOB) NAME, JOB, LENGTH (ENAME), INSTR(ENAME, 'a') "Contains 'a'?" FROM EMP

WHERE

SUBSTR(JOB, 6)=MAN';

Number Functions

ROUND: Rounds value to specified decimal


ROUND(45.926, 2) 45.93

TRUNC: decimal

Truncates value to specified


45.92

TRUNC(45.926, 2)

MOD: Returns remainder of division


MOD(1600, 300) 100

Using the ROUND Function


SELECT ROUND(45.923,2), ROUND(45.923,0),
ROUND(45.923,-1) FROM DUAL;

DUAL is a dummy table you can use to view results from functions and calculations.

Using the TRUNC Function

SELECT

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

FROM

DUAL;

Using the MOD Function


Calculate the remainder of a salary after it is divided by 5000 for all employees whose job title is sales representative.

SELECT ENAME, SAL, MOD(SAL, 5000) FROM EMP

WHERE

JOB = 'SALESMAN';

Working with Dates

Oracle database stores dates in an internal numeric format: century, year, month, day, hours, minutes, seconds. The default date display format is DD-MON-RR. Allows you to store 21st century dates in the 20th century by specifying only the last two digits of the year. Allows you to store 20th century dates in the 21st century in the same way.

0 SELECT ENAME, HIREDATE FROM WHERE EMP ENAME like 'G%';

Working with Dates

SYSDATE is a function that returns: Date Time

Arithmetic with Dates

Add or subtract a number to or from a date for a resultant date value. Subtract two dates to find the number of days between those dates. Add hours to a date by dividing the number of hours by 24.

Using Arithmetic Operators with Dates


SELECT ENAME, (SYSDATE-HIREDATE)/7 AS WEEKS FROM EMP

WHERE

DEPTNO = 20;

Date Functions
Function MONTHS_BETWEEN ADD_MONTHS NEXT_DAY LAST_DAY ROUND TRUNC Description Number of months between two dates Add calendar months to date Next day of the date specified Last day of the month Round date 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-FEB-95') '28-FEB-95'

Using Date Functions


Assume SYSDATE = '25-JUL-95':

ROUND(SYSDATE,'MONTH')
ROUND(SYSDATE ,'YEAR') TRUNC(SYSDATE ,'MONTH') TRUNC(SYSDATE ,'YEAR')

01-AUG-95
01-JAN-96 01-JUL-95 01-JAN-95

Vous aimerez peut-être aussi