SQL92 では明確な構文を持った文字列関数を定義しています。これらの一 部は他の Postgres 関数を使用して実装し ています。SQL92 でサポートされている文字列型は、 char、varchar、text です。
Table 5-3. SQL92 文字列関数
関数 | 戻り値 | 説明 | 例 |
---|---|---|---|
char_length(string) | int4 | 文字列の長さを返す。 | char_length('jose') |
character_length(string) | int4 | 文字列の長さを返す。 | char_length('jose') |
lower(string) | string | 文字列を小文字に変換する。 | lower('TOM') |
octet_length(string) | int4 | 文字列の保存形式での長さを返す。 | octet_length('jose') |
position(string in string) | int4 | 指定部分文字列のある場所を返す。 | position('o' in 'Tom') |
substring(string [from int] [for int]) | string | 指定部分文字列を取り出す。 | substring('Tom' from 2 for 2) |
trim([leading|trailing|both] [string] from string) | string | 文字列から文字を取り除く。 | trim(both 'x' from 'xTomx') |
upper(text) | text | 文字列を大文字に変換する。 | upper('tom') |
text、varchar()、char() 型ではもっと多くの文字列関数が使用できま す。これらの一部は上述の SQL92 文字列関数の実装の内部でも使われて います。
Table 5-4. 文字列関数
関数 | 戻り値 | 説明 | 例 |
---|---|---|---|
char(text) | char | text 型から char 型に変換する。 | char('text string') |
char(varchar) | char | varchar 型からchar 型に変換する。 | char(varchar 'varchar string') |
initcap(text) | text | 各単語の最初の文字を大文字にする。 | initcap('thomas') |
lpad(text,int,text) | text | 文字列を指定長さ分左側に追加する。 | lpad('hi',4,'??') |
ltrim(text,text) | text | 文字列の左から文字を取り去る。 | ltrim('xxxxtrim','x') |
textpos(text,text) | text | 指定部分文字列の場所を返す。 (訳注: 実際の戻り値は int4 です。例も違っています。) | position('high','ig') |
rpad(text,int,text) | text | 文字列を指定長さ分右側に追加する。 | rpad('hi',4,'x') |
rtrim(text,text) | text | 文字列の右から文字を取り去る。 | rtrim('trimxxxx','x') |
substr(text,int[,int]) | text | 指定部分文字列を取り出す。> | substr('hi there',3,5) |
text(char) | text | char 型から text 型に変換する。 | text('char string') |
text(varchar) | text | varchar 型から text 型に変換する。 | text(varchar 'varchar string') |
translate(text,from,to) | text | 文字列の中の文字を置換する。 | translate('12345', '1', 'a') |
varchar(char) | varchar | char 型から varchar 型に変換する。 | varchar('char string') |
varchar(text) | varchar | text 型から varchar 型に変換する。 | varchar('text string') |
明示的に text 型用と定義されたほとんどの関数は、char() 型、 varchar() 型を引数に使うことはできません。