Categories of SQL Functions

SQL Functions are developed into Oracle Database and are available to use in various appropriate SQL Statements. Functions in SQL and User defined function in Pl/SQL both are different.

In query, if you call a SQL function with an argument with different datatype other than expected by the function, then Oracle will convert the argument datatype to the expected datatype before performing the SQL function and if you call function with null argument, it will return null.

Categories of Functions:

1. Single_row_function
2. Aggregate_function
3. Analytic_function
4. Model_function
5. User_defined_function 

Some of these functions are explained as following below.

  1. Single row function:
    Single row functions are those functions which return a single result row for each row of queried table or view. This functions exists in Select lists, WHERE clause, START WITH, CONNECT BY clause and HAVING clause.

    • Numeric_functions
    • Character_function
    • Data_mining_function
    • Datetime_functions
    • Conversion_functon
    • Collection_function
    • XML_function

  2. Aggregate function:
    While using Aggregate function it will returns single row result based on group of rows, instead of single rows.Aggregate function appears in Select lists and ORDER BY and HAVING clause.They are usually used with GROUP BY clause and SELECT Statements.

    If you use GROUP BY clause, then Oracle applies aggregate function in the select list to all the rows in the queried table or view.

    All the Aggregate functions except GROUPING and COUNT(*) ignores null values. You can also use NVL function in the argument to an aggregate function to substitute a value in place of null.
    You can also nest aggregate functions.For example:-

    SELECT AVG(MAX(salary) 
    FROM employees 
    GROUP BY department_id

    Most frequently used Aggregate functions are AVG, COUNT, DENSE_RANK, MAX, MIN, RANK, SUM.

  3. Analytic function:
    Analytic function calculate aggregate value based on group of rows.Difference between Analytic function and Aggregate function is they return multiple rows for each group. The group of rows is termed as window and it is defined by analytic_clause.

    Analytic function are the last set of operations performed in a query except the final ORDER BY clause.

    • Analytic_clause
    • Query_partition_clause
    • Order_by_clause
    • Windowing_clause

  4. Model Functions:
    Within SELECT statements, Model Functions can be used with model_clause.

    Model Functions are:

    • CV
    • Iteration_Number
    • Pesentnnv
    • Presentv
    • Previous

  5. User defined function:
    You can use User defied functions in PL/SQL or Java to provide functionality that is not available in SQL or SQL built in functions. SQL functions and User defined functions can be appear anywhere, that is, wherever an expression occur.

    For example, It can be used in:

    • Select list of SELECT statement.
    • Condition of WHERE clause.
    • The VALUES clause of INSERT statement.
    • The SET clause of UPDATE statement.

    Basically we use CREATE Function to create User defined functions in SQL.

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :


Please write to us at to report any issue with the above content.