他のバージョンの文書10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

4.5. バイナリ列関数と演算子

この節ではバイナリ列の値を調べたり操作するための関数と演算子について説明します。この文書の中で文字列とは BYTEA データ型の値を含みます。

SQL では引数の区切りにコンマではなくあるキーワードを使う特殊な構文の文字列関数を幾つか定義しています。詳細は Table 4-8 を参照してください。これら関数は通常の関数呼び出し構文によっても実装されています。(Table 4-9 を参照。)

Table 4-8. SQL バイナリ列関数と演算子

関数返り値型説明結果
string || string bytea 列の結合 '\\\\Postgre'::bytea || '\\047SQL\\000'::bytea\\Postgre'SQL\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] characters from string)bytea characters で指定される列 のみを含む最も長い文字列を string の最初、最後、そして両側から削除します。trim('\\000'::bytea from '\\000Tom\\000'::bytea)Tom

これら以外にも次に列挙するバイナリ列操作関数が使えます。その幾つかは上で説明した SQL 標準バイナリ列関数を実装する目的で内部的に使用されます。

Table 4-9. その他のバイナリ列関数

関数返り値型説明結果
btrim(string bytea, trim bytea)bytea trim で指定された文字のみを有する最長の文字列を string の先頭と末尾から削除します。btrim('\\000trim\\000'::bytea,'\\000'::bytea)trim
length(string)integer バイナリ列の長さ length('jo\\000se'::bytea)5
encode(string bytea, type text)text バイナリ列を ASCII のみの表現に符号化します。サポートされている型は 'base64'、'hex'、'escape' です。encode('123\\000456'::bytea, 'escape')123\000456
decode(string text, type text)bytea 以前に encode() で符号化された string からバイナリ列を復号します。パラメータの型は encode() と同じです。decode('123\\000456', 'escape')123\000456