Built-in Functions in SQL
Numberic 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 ('sagar', ' Sidana') 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 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;