Built-in Functions in SQL
Numeric Functions
Function |
Input Argument |
Value Returned |
ABS ( m ) |
m = value |
Absolute value of m |
MOD ( m, n ) |
m = value, n = divisor |
Remainder of m divided by n |
POWER ( m, n ) |
m = value, n = exponent |
m raised to the nth power |
ROUND ( m [, n ] ) |
m = value, n = number of decimal places, default 0 |
m rounded to the nth decimal place |
TRUNC ( m [, n ] ) |
m = value, n = number of decimal places, default 0 |
m truncated to the nth decimal place |
SIN ( n ) |
n = angle expressed in radians |
sine (n) |
COS ( n ) |
n = angle expressed in radians |
cosine (n) |
TAN ( n ) |
n = angle expressed in radians |
tan (n) |
ASIN ( n ) |
n is in the range -1 to +1 |
arc sine of n in the range -π/2 to +π/2 |
ACOS ( n ) |
n is in the range -1 to +1 |
arc cosine of n in the range 0 to π |
ATAN ( n ) |
n is unbounded |
arc tangent of n in the range -π/2 to + π/2 |
SINH ( n ) |
n = value |
hyperbolic sine of n |
COSH ( n ) |
n = value |
hyperbolic cosine of n |
TANH ( n ) |
n = value |
hyperbolic tangent of n |
SQRT ( n ) |
n = value |
positive square root of n |
EXP ( n ) |
n = value |
e raised to the power n |
LN ( n ) |
n > 0 |
natural logarithm of n |
LOG ( n2, n1 ) |
base n2 any positive value other than 0 or 1, n1 any positive value |
logarithm of n1, base n2 |
CEIL ( n ) |
n = value |
smallest integer greater than or equal to n |
FLOOR ( n ) |
n = value |
greatest integer smaller than or equal to n |
SIGN ( n ) |
n = value |
-1 if n < 0, 0 if n = 0, and 1 if n > 0 |
Here are some examples of the use of some of these numeric functions:
select round (83.28749, 2) from dual;
select sqrt (3.67) from dual;
select power (2.512, 5) from dual;
String Functions
Function |
Input Argument |
Value Returned |
INITCAP ( s ) |
s = character string |
First letter of each word is changed to uppercase and all other letters
are in lower case. |
LOWER ( s ) |
s = character string |
All letters are changed to lowercase. |
UPPER ( s ) |
s = character string |
All letters are changed to uppercase. |
CONCAT ( s1, s2 ) |
s1 and s2 are character strings |
Concatenation of s1 and s2. Equivalent to s1 || s2 |
LPAD ( s1, n [, s2] ) |
s1 and s2 are character strings and n is an integer value |
Returns s1 right justified and padded left with n characters from s2;
s2 defaults to space. |
RPAD ( s1, n [, s2] ) |
s1 and s2 are character strings and n is an integer value |
Returns s1 left justified and padded right with n characters from s2;
s2 defaults to space. |
LTRIM ( s [, set ] ) |
s is a character string and set is a set of characters |
Returns s with characters removed up to the first character not
in set; defaults to space |
RTRIM ( s [, set ] ) |
s is a character string and set is a set of characters |
Returns s with final characters removed after the last character not
in set; defaults to space |
REPLACE ( s, search_s [, replace_s ] ) |
s = character string, search_s = target string, replace_s =
replacement string |
Returns s with every occurrence of search_s in s replaced by replace_s;
default removes search_s |
SUBSTR ( s, m [, n ] ) |
s = character string, m = beginning position, n = number of
characters |
Returns a substring from s, beginning in position m and n characters
long; default returns to end of s. |
LENGTH ( s ) |
s = character string |
Returns the number of characters in s. |
INSTR ( s1, s2 [, m [, n ] ] ) |
s1 and s2 are character strings, m = beginning position, n =
occurrence of s2 in s1 |
Returns the position of the nth occurrence of s2 in s1, beginning at
position m, both m and n default to 1. |
Here are some examples of the use of String functions:
select concat ('Alan', 'Turing') as "NAME" from dual;
select 'Alan' || 'Turing' as "NAME" from dual;
select initcap ("now is the time for all good men to come to the aid of the
party") as "SLOGAN" from dual;
select substr ('Alan Turing', 1, 4) as "FIRST" from dual;
String / Number Conversion Functions
Function |
Input Argument |
Value Returned |
NANVL ( n2, n1 ) |
n1, n2 = value |
if (n2 = NaN) returns n1 else returns n2 |
TO_CHAR ( m [, fmt ] ) |
m = numeric value, fmt = format |
Number m converted to character string as specified by the format |
TO_NUMBER ( s [, fmt ] ) |
s = character string, fmt = format |
Character string s converted to a number as specified by the format |
Formats for TO_CHAR Function
Symbol |
Explanation |
9 |
Each 9 represents one digit in the result |
0 |
Represents a leading zero to be displayed |
$ |
Floating dollar sign printed to the left of number |
L |
Any local floating currency symbol |
. |
Prints the decimal point |
, |
Prints the comma to represent thousands |
Group Functions
Function |
Input Argument |
Value Returned |
AVG ( [ DISTINCT | ALL ] col ) |
col = column name |
The average value of that column |
COUNT ( * ) |
none |
Number of rows returned including duplicates and NULLs |
COUNT ( [ DISTINCT | ALL ] col ) |
col = column name |
Number of rows where the value of the column is not NULL |
MAX ( [ DISTINCT | ALL ] col ) |
col = column name |
Maximum value in the column |
MIN ( [ DISTINCT | ALL ] col ) |
col = column name |
Minimum value in the column |
SUM ( [ DISTINCT | ALL ] col ) |
col = column name |
Sum of the values in the column |
CORR ( e1, e2 ) |
e1 and e2 are column names |
Correlation coefficient between the two columns after eliminating
nulls |
MEDIAN ( col ) |
col = column name |
Middle value in the sorted column, interpolating if necessary |
STDDEV ( [ DISTINCT | ALL ] col ) |
col = column name |
Standard deviation of the column ignoring NULL values |
VARIANCE ( [ DISTINCT | ALL ] col ) |
col = column name |
Variance of the column ignoring NULL values |
Date and Time Functions
Function |
Input Argument |
Value Returned |
ADD_MONTHS ( d, n ) |
d = date, n = number of months |
Date d plus n months |
LAST_DAY ( d ) |
d = date |
Date of the last day of the month containing d |
MONTHS_BETWEEN ( d, e ) |
d and e are dates |
Number of months by which e precedes d |
NEW_TIME ( d, a, b ) |
d = date, a = time zone (char), b = time zone (char) |
The date and time in time zone b when date d is for time zone a |
NEXT_DAY ( d, day ) |
d = date, day = day of the week |
Date of the first day of the week after d |
SYSDATE |
none |
Current date and time |
GREATEST ( d1, d2, ..., dn ) |
d1 ... dn = list of dates |
Latest of the given dates |
LEAST ( d1, d2, ..., dn ) |
d1 ... dn = list of dates |
Earliest of the given dates |
Date Conversion Functions
Function |
Input Argument |
Value Returned |
TO_CHAR ( d [, fmt ] ) |
d = date value, fmt = format for string |
The date d converted to a string in the given format |
TO_DATE ( s [, fmt ] ) |
s = character string, fmt = format for date |
String s converted to a date value |
ROUND ( d [, fmt ] ) |
d = date value, fmt = format for string |
Date d rounded as specified by the format |
TRUNC ( d [, fmt ] ) |
d = date value, fmt = format for string |
Date d truncated as specified by the format |
Date Formats
Format Code |
Description |
Range of Values |
DD |
Day of the month |
1 - 31 |
DY |
Name of the day in 3 uppercase letters |
SUN, ..., SAT |
DAY |
Complete name of the day in uppercase, padded to 9 characters |
SUNDAY, ..., SATURDAY |
MM |
Number of the month |
1 - 12 |
MON |
Name of the month in 3 uppercase letters |
JAN, ..., DEC |
MONTH |
Name of the month in uppercase padded to a length of 9 characters |
JANUARY, ..., DECEMBER |
RM |
Roman numeral for the month |
I, ..., XII |
YY or YYYY |
Two or four digit year |
71 or 1971 |
HH:MI:SS |
Hours : Minutes : Seconds |
10:28:53 |
HH 12 or HH 24 |
Hour displayed in 12 or 24 hour format |
1 - 12 or 1 - 24 |
MI |
Minutes of the hour |
0 - 59 |
SS |
Seconds of the minute |
0 - 59 |
AM or PM |
Meridian indicator |
AM or PM |
SP |
A suffix that forces the number to be spelled out. |
e.g. TWO THOUSAND NINE |
TH |
A suffix meaning that the ordinal number is to be added |
e.g. 1st, 2nd, 3rd, ... |
FM |
Prefix to DAY or MONTH or YEAR to suppress padding |
e.g. MONDAY with no extra spaces at the end |
Here are some examples of the use of the Date functions:
select to_char ( sysdate, 'MON DD, YYYY' ) from dual;
select to_char ( sysdate, 'HH12:MI:SS AM' ) from dual;
select to_char ( new_time ( sysdate, 'CDT', 'GMT'), 'HH24:MI' ) from dual;
select greatest ( to_date ( 'JAN 19, 2000', 'MON DD, YYYY' ),
to_date ( 'SEP 27, 1999', 'MON DD, YYYY' ),
to_date ( '13-Mar-2009', 'DD-Mon-YYYY' ) )
from dual;
select next_day ( sysdate, 'FRIDAY' ) from dual;
select last_day ( add_months ( sysdate, 1 ) ) from dual;