SQL Statement - Single-row SQL functions



SQL Functions


Functions are a very powerful feature of SQL. They can be used to do the following:

•        Perform calculations on data
•        Modify individual data items
•        Manipulate output for groups of rows
•        Format dates and numbers for display
•        Convert column data types

SQL functions sometimes take arguments and always return a value.

Two Types of SQL Functions


There are two types of functions:

•        Single-row functions
•        Multiple-row functions

Single-Row Functions

These functions operate on single rows only and return one result per row. There are different types of single-row functions.
•        Character
•        Number
•        Date
•        Conversion
•        General

Multiple-Row Functions
Functions can manipulate groups of rows to give one result per group of rows. These functions are also known as group functions

Single-Row Functions
Single-row functions are used to manipulate data items. They accept one or more arguments and return one value for each row that is returned by the query. An argument can be one of the following:

•        User-supplied constant
•        Variable value
•        Column name
•        Expression

Features of single-row functions include:
•        Acting on each row that is returned in the query
•        Returning one result per row
•        Possibly returning a data value of a different type than the one that is referenced
•        Possibly expecting one or more arguments
•        Can be used in SELECT, WHERE, and ORDER BY clauses; can be nested

In the syntax:
function_name        is the name of the function
arg1, arg2              is any argument to be used by the function. This can be                                                         represented by a column name or expression.

•        Character functions: Accept character input and can return both character and number values
•        Number functions: Accept numeric input and return numeric values
•        Date functions: Operate on values of the DATE data type (All date functions return a value of the DATE data type except the MONTHS_BETWEEN function, which returns a number.)
•        Conversion functions: Convert a value from one data type to another

General functions:
-        NVL
-        NVL2
-        NULLIF
-        COALESCE
-        CASE
-        DECODE

Character Functions



Single-row character functions accept character data as input and can return both character and numeric values. Character functions can be divided into the following:

•        Case-conversion functions
•        Character-manipulation functions

Case-Conversion Functions
LOWER, UPPER, and INITCAP are the three case-conversion functions.

•   LOWER: Converts mixed-case or uppercase character strings to lowercase
•   UPPER: Converts mixed-case or lowercase character strings to uppercase
•   INITCAP: Converts the first letter of each word to uppercase and the remaining letters to lowercase

SELECT 'The job id for '||UPPER(last_name)||' is '
       ||LOWER(job_id) AS "EMPLOYEE DETAILS"
FROM   employees;

Using Case-Conversion Functions
The WHERE clause of SQL statement specifies that the employee name in the EMPLOYEES table is compared to higgins, converting the LAST_NAME column to lowercase for comparison purposes. Because both names are now lowercase, a match is found and one row is selected. The WHERE clause can be rewritten in the following manner to produce the same result:

...WHERE last_name = 'Higgins'

The name in the output appears as it was stored in the database. To display the name in uppercase, use the UPPER function in the SELECT statement.

SELECT employee_id, UPPER(last_name), department_id
FROM   employees
WHERE  INITCAP(last_name) = 'Higgins';

Character-Manipulation Functions
•   CONCAT: Joins values together (You are limited to using two parameters with CONCAT.)
•   SUBSTR: Extracts a string of determined length
•   LENGTH: Shows the length of a string as a numeric value
•   INSTR: Finds the numeric position of a named character
•   LPAD: Returns an expression left-padded to the length of n characters with a character expression
•   RPAD: Returns an expression right-padded to the length of n characters with a character expression
•   TRIM: Trims leading or trailing characters (or both) from a character string (If trim_character or trim_source is a character literal, you must enclose it within single quotation marks.)

Note: You can use functions such as UPPER and LOWER with ampersand substitution. For example, use UPPER('&job_title')so that the user does not have to enter the job title in a specific case.

Using the Character-Manipulation Functions
The example displays employee first names and last names joined together, the length of the employee last name, and the numeric position of the letter “a” in the employee last name for all employees who have the string, REP, contained in the job ID starting at the fourth position of the job ID.

Example:
SQL statement to display the data for those employees whose last names end with the letter “n.”

SELECT employee_id, CONCAT(first_name, last_name) NAME,
LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?"
FROM   employees
WHERE  SUBSTR(last_name, -1, 1) = 'n';

Number Functions
Number functions accept numeric input and return numeric values. This section describes some of the number functions.



Using the ROUND Function



The ROUND function rounds the column, expression, or value to n decimal places. If the second argument is 0 or is missing, the value is rounded to zero decimal places. If the second argument is 2, the value is rounded to two decimal places. Conversely, if the second argument is –2, the value is rounded to two decimal places to the left (rounded to the nearest unit of 100).
The ROUND function can also be used with date functions.

DUAL Table
The DUAL table is owned by the user SYS and can be accessed by all users. It contains one column, DUMMY, and one row with the value X. The DUAL table is useful when you want to return a value only once (for example, the value of a constant, pseudocolumn, or expression that is not derived from a table with user data). The DUAL table is generally used for completeness of the SELECT clause syntax, because both SELECT and FROM clauses are mandatory, and several calculations do not need to select from the actual tables.

Using the TRUNC Function



The TRUNC function truncates the column, expression, or value to n decimal places.

The TRUNC function works with arguments similar to those of the ROUND function. If the second argument is 0 or is missing, the value is truncated to zero decimal places. If the second argument is 2, the value is truncated to two decimal places. Conversely, if the second argument is –2, the value is truncated to two decimal places to the left. If the second argument is –1, the value is truncated to one decimal place to the left.

Like the ROUND function, the TRUNC function can be used with date functions.

Using the MOD Function
The MOD function finds the remainder of the first argument divided by the second argument.

Note: The MOD function is often used to determine whether a value is odd or even.