Chapter 9. 函數和操作符

Table of Contents
9.1. 邏輯操作符
9.2. 比較操作符
9.3. 數學函數和操作符
9.4. 字元串函數和操作符
9.5. 二進制字串函數和操作符
9.6. 位串函數和操作符
9.7. 模式匹配
9.7.1. LIKE
9.7.2. SIMILAR TO 正則資料表達式
9.7.3. POSIX 正則資料表達式
9.8. 資料類型格式化函數
9.9. 時間/日期函數和操作符
9.9.1. EXTRACTdate_part
9.9.2. date_trunc
9.9.3. AT TIME ZONE
9.9.4. 目前日期/時間
9.10. 幾何函數和操作符
9.11. 網絡地址類型函數和操作符
9.12. 序列操作函數
9.13. 條件資料表達式
9.13.1. CASE
9.13.2. COALESCE
9.13.3. NULLIF
9.14. 數組函數和操作符
9.15. 聚集函數
9.16. 子查詢資料表達式
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. 逐行比較
9.17. 行和數組比較
9.17.1. IN
9.17.2. NOT IN
9.17.3. ANY/SOME (數組)
9.17.4. ALL (array)
9.17.5. 逐行比較
9.18. 返回集合的函數
9.19. 系統訊息函數
9.20. 系統管理函數

PostgreSQL 為內建的資料類型提供了大量的函數和操作符。 用戶也可以定義它們自己的函數和操作符, 象 Part V 裡描述的那樣。 psql 命令 \df\do 可以分別用於顯示所有實際可用的函數和操作符的列資料表。

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

9.1. 邏輯操作符

常用的邏輯操作符有:

AND
OR
NOT

SQL 使用三值的布爾邏輯,這時空值代資料表"unknown"。 觀察下面真值資料表:

aba AND ba OR b
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
TRUENULLNULLTRUE
FALSEFALSEFALSEFALSE
FALSENULLFALSENULL
NULLNULLNULLNULL

aNOT a
TRUEFALSE
FALSETRUE
NULLNULL

操作符 ANDOR 都是可交換的, 也就是說,您可以交換左右操作數而不影響結果。但是請參閱 Section 4.2.12 獲取有關子資料表達式計算順序的更多訊息。