Chapter 6. 函數和運算子

Table of Contents
6.1. 邏輯運算子
6.2. 比較運算子
6.3. 數學函數和運算子
6.4. 字串函數和運算子
6.5. 二進位字串函數和運算子
6.6. 樣式相符
6.6.1. LIKE
6.6.2. SIMILAR TOSQL99 正則表達式
6.6.3. POSIX 正則表達式
6.7. 資料類型格式化函數
6.8. 時間/日期函數和運算子
6.8.1. EXTRACTdate_part
6.8.2. date_trunc
6.8.3. AT TIME ZONE
6.8.4. 目前日期/時間
6.9. 幾何函數和運算子
6.10. 網路位址類型函數
6.11. 序列操作函數
6.12. 條件表達式
6.12.1. CASE
6.12.2. COALESCE
6.12.3. NULLIF
6.13. 雜項函數
6.14. 統計函數
6.15. 幾查詢表達式
6.15.1. EXISTS
6.15.2. IN (標量形式)
6.15.3. IN (幾查詢形式)
6.15.4. NOT IN (標量形式)
6.15.5. NOT IN (幾查詢形式)
6.15.6. ANY/SOME
6.15.7. ALL
6.15.8. 逐行比較

PostgreSQL 為內建的資料類型提供了 大量的函數和運算子.使用者也可以定義它們自己的函數和運算子, 象 PostgreSQL 7.3 程式員手冊 裡描述的那樣. psql 命令 \df\do 可以分別用於顯示所有實際可用的函數 和運算子的清單.

如果你關心移植性,那麼請注意,我們在本章描述的大多數 函數和運算子,除了最瑣碎的算術和比較運算子以及一些做了明確 標記的函數以外,都沒有在SQL標準裡宣告. 許多其它 SQL 實現也有這些擴展的功能, 並且很多時候不同的資料庫產品中這些功能是相互兼容的.

6.1. 邏輯運算子

常用的邏輯運算子有:

AND
OR
NOT

SQL 使用三值的布林邏輯,這時 NULL 代表"unknown". 觀察下面真值表:

aba AND ba OR b
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
TRUENULLNULLTRUE
FALSEFALSEFALSEFALSE
FALSENULLFALSENULL
NULLNULLNULLNULL

aNOT a
TRUEFALSE
FALSETRUE
NULLNULL