文字列関数

SQL92 では明確な構文を持った文字列関数を定義しています。これらの一 部は他の Postgres 関数を使用して実装し ています。SQL92 でサポートされている文字列型は、 charvarchartext です。

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() 型を引数に使うことはできません。