9.5. 二進制字串函數和操作符

本節描述那些檢查和操作類型為 bytea 的數值的函數和操作符。

SQL 定義了一些有特殊語法的字串函數, 在這些函數里使用特殊關鍵字而不是逗號來分隔參數。 詳情請見 Table 9-8。 一些函數也實現了使用常用語法進行函數調用的方法。 (參閱 Table 9-9。)

Table 9-8. SQL 二進制字串函數和操作符

函數返回類型描述例子結果
string || string bytea 字串連接 '\\\\Post'::bytea || '\\047gres\\000'::bytea\\Post'gres\000
octet_length(string)integer二進制字串中的字元數目octet_length('jo\\000se'::bytea)5
position(substring in string)integer指定子字串的位置position('\\000om'::bytea in 'Th\\000omas'::bytea)3
substring(string [from integer] [for integer])bytea 抽取子字串 substring('Th\\000omas'::bytea from 2 for 3)h\000o
trim([both] bytes from string) byteastring 的開頭和結尾刪除 只包含 bytes 的最長的字串。 trim('\\000'::bytea from '\\000Tom\\000'::bytea)Tom
get_byte(string, offset)integer 從字串中抽取字元。 get_byte('Th\\000omas'::bytea, 4)109
set_byte(string, offset, newvalue)bytea 設置字串中的字元。 set_byte('Th\\000omas'::bytea, 4, 64)Th\[email protected]
get_bit(string, offset)integer 從字串中抽取位。 get_bit('Th\\000omas'::bytea, 45)1
set_bit(string, offset, newvalue)bytea 設置字串中的位。 set_bit('Th\\000omas'::bytea, 45, 0)Th\000omAs

還有一些二進制字串處理函數可以使用,在Table 9-9列出。 其中有一些是在內部使用,用於實現Table 9-8列出的 SQL 標準的字串函數的。

Table 9-9. 其它二進制字串函數

函數返回類型描述例子結果
btrim(string bytea, bytes bytea)byteastring 的開頭和結尾刪除(截斷) 只包含在 bytes 裡面的字元的最長的字串。 btrim('\\000trim\\000'::bytea,'\\000'::bytea)trim
length(string)integer 二進制字串的長度 length('jo\\000se'::bytea)5
decode(string text, type text) bytea 把前面用encode()編碼的放在 string 裡的 二進制字串解碼。參數類型和encode()裡的一樣。 decode('123\\000456', 'escape')123\000456
encode(string bytea, type text) text 把二進制字串編碼為只包含 ASCII 的資料表現形式。 類型是︰ base64hexescapeencode('123\\000456'::bytea, 'escape')123\000456