Chapter 9. Functions and Operators

Top  Previous  Next

Chapter 9. Functions and Operators

Table of Contents

9.1. Logical Operators

9.2. Comparison Operators

9.3. Mathematical Functions and Operators

9.4. String Functions and Operators

9.5. Binary String Functions and Operators

9.6. Bit String Functions and Operators

9.7. Pattern Matching

9.7.1. LIKE

9.7.2. SIMILAR TO Regular Expressions

9.7.3. POSIX Regular Expressions

9.8. Data Type Formatting Functions

9.9. Date/Time Functions and Operators

9.9.1. EXTRACT, date_part

9.9.2. date_trunc

9.9.3. AT TIME ZONE

9.9.4. Current Date/Time

9.10. Geometric Functions and Operators

9.11. Network Address Functions and Operators

9.12. Sequence Manipulation Functions

9.13. Conditional Expressions

9.13.1. CASE

9.13.2. COALESCE

9.13.3. NULLIF

9.13.4. GREATEST and LEAST

9.14. Array Functions and Operators

9.15. Aggregate Functions

9.16. Subquery Expressions

9.16.1. EXISTS

9.16.2. IN

9.16.3. NOT IN

9.16.4. ANY/SOME

9.16.5. ALL

9.16.6. Row-wise Comparison

9.17. Row and Array Comparisons

9.17.1. IN

9.17.2. NOT IN

9.17.3. ANY/SOME (array)

9.17.4. ALL (array)

9.17.5. Row-wise Comparison

9.18. Set Returning Functions

9.19. System Information Functions

9.20. System Administration Functions

PostgreSQL provides a large number of functions and operators for the built-in data types. Users can also define their own functions and operators, as described in Part V, “Server Programming”. The psql commands \df and \do can be used to show the list of all actually available functions and operators, respectively.

If you are concerned about portability then take note that most of the functions and operators described in this chapter, with the exception of the most trivial arithmetic and comparison operators and some explicitly marked functions, are not specified by the SQL standard. Some of the extended functionality is present in other SQL database management systems, and in many cases this functionality is compatible and consistent between the various implementations. This chapter is also not exhaustive; additional functions appear in relevant sections of the manual.

9.1. Logical Operators

The usual logical operators are available:

AND

OR

NOT

SQL

uses a three-valued Boolean logic where the null value represents

unknown

.

Observe the following truth tables:

a

b

a AND b

a OR b

TRUE

TRUE

TRUE

TRUE

TRUE

FALSE

FALSE

TRUE

TRUE

NULL

NULL

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

NULL

FALSE

NULL

NULL

NULL

NULL

NULL

a

NOT a

TRUE

FALSE

FALSE

TRUE

NULL

NULL

The operators AND and OR are commutative, that is, you can switch the left and right operand without affecting the result. But see Section 4.2.12, “Expression Evaluation Rules” for more information about the order of evaluation of subexpressions.