すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:文字列関数と演算子

最終更新日:Sep 29, 2024

AnalyticDB for PostgreSQLは、PostgreSQLの文字列関数および演算子と互換性があります。 このトピックでは、AnalyticDB for PostgreSQLでサポートされている文字列関数と演算子について説明し、文字列関数と演算子の使用方法の例を示します。

PostgreSQLの文字列関数と演算子の詳細については、「文字列関数と演算子」をご参照ください。

SQL文字列関数と演算子

関数

戻り値のデータ型

説明

サンプル結果

string | | string

テキスト

2つの文字列を連結します。

'Post' | | 'greSQL'

PostgreSQL

string | 文字列または文字列 | 文字列

テキスト

文字列と非文字列を連結します。

'Value: '| | 42

値: 42

bit_length()

int

文字列のビット数を返します。

bit_length('jose')

32

char_length( string) またはcharacter_length()

int

文字列の文字数を返します。

char_length('jose')

4

lower( string)

テキスト

文字列の大文字を小文字に変換します。

下 ('TOM')

トム

octet_length( string)

int

文字列の長さをバイト単位で返します。

oct_length ('jose')

4

overlay(placingfrom[for])

テキスト

文字列内の特定の位置で部分文字列を置き換えます。

オーバーレイ ('Txxxxas' 配置 'hom' から2 for 4)

トーマス

位置 (in)

int

文字列内の部分文字列の開始位置を検索します。

位置 (「トーマス」の「om」)

3

部分文字列 ([from] [for])

テキスト

文字列から部分文字列を抽出します。

部分文字列 ('Thomas' から2 for 3)

hom

部分文字列 (から)

テキスト

POSIX (Portable Operating System Interface) 正規表現に基づいて、文字列から部分文字列を抽出します。 たとえば、抽出の開始位置と長さを指定できます。

部分文字列 ('Thomas' from '...$')

mas

部分文字列 (fromfor)

テキスト

SQL正規表現に基づいて文字列から部分文字列を抽出します。

部分文字列 ('Thomas' from '%#"o_a#"_' for '#')

オーマ

trim([leading | trailing | both] [] from)

テキスト

文字列の先頭、末尾、または先頭と末尾の両方から、指定した文字を含む最長の部分文字列を削除します。

トリム (両方とも 'yxTomxx' から 'xyz')

トム

trim([leading | trailing | both] [from][,] )

テキスト

文字列の先頭、末尾、または先頭と末尾の両方から、スペースまたは指定された文字を含む最長の部分文字列を削除します。

トリム (両方とも 'xTomxx' 、'x' から)

トム

upper()

テキスト

文字列内の小文字を大文字に変換します。

アッパー ('tom')

トム

その他の文字列関数

関数

戻り値のデータ型

説明

サンプル結果

ascii()

int

文字列の最初の文字のASCIIコードを返します。

ascii('x')

120

btrim([,])

テキスト

特定の文字セット内の文字を含む最長部分文字列を、文字列の先頭と末尾から削除します。 文字セットを指定しない場合、空白やタブなどの空白文字はデフォルトで削除されます。

btrim ('xyxtrimyx' 、'xyz')

トリム

chr(

テキスト

ASCIIまたは拡張ASCIIコード値を表す整数を対応する文字に変換します。

chr (65)

A

concat([,[, ...] ])

テキスト

2つ以上の文字列を文字列に連結します。

concat('abcde', 2, NULL, 22)

abcde222

concat_ws(,[,[, ...] ])

テキスト

複数の文字列を文字列に連結し、連結された文字列の間の関数の変数の先頭に指定した区切り文字を挿入します。

concat_ws(',', 'abcde', 2, NULL, 22)

abcde,2,22

convert(,,)

ビテア

文字列をソースエンコード形式から宛先エンコード形式に変換します。

変換 ('text_in_utf8 '、'UTF8' 、'LATIN1')

text_in_utf8をラテン系1 (ISO 8859-1) のエンコード形式

convert_from(,)

テキスト

指定されたソースエンコード形式を使用して、BYTEA型のバイナリ文字列をTEXT型の文字列に変換します。

convert_from('text_in_utf8' 、'UTF8')

現在のデータベースエンコーディング形式のtext_in_utf8

convert_to(,)

ビテア

指定された宛先エンコード形式を使用して、TEXT型の文字列をBYTEA型のバイナリ文字列に変換します。

convert_to('some text' 、'UTF8')

UTF-8エンコード形式の一部のテキスト

decode(,)

ビテア

TEXT型の16進文字列をBYTEA型のバイナリ表現にデコードします。

decode('MTIzAAE=', 'base64')

\x3132330001

encode(,)

テキスト

BYTEA型のバイナリ文字列を特定の形式のTEXT型の文字列にエンコードします。

エンコード ('123\000\001 '、'base64')

MTIzAAE=

フォーマット ([,[, ...] ])

テキスト

フォーマットされた文字列を出力します。

形式 ('Hello % s, % 1$s', 'World')

こんにちは世界、世界

initcap()

テキスト

文字列内の各単語の最初の文字を対応する大文字に変換し、他の文字を対応する小文字に変換します。

initcap('hi THOMAS')

こんにちはトーマス

left(,)

テキスト

stringの最初のn文字を返します。

左 ('abcde', 2)

ab

length()

int

スペースや特殊文字を含む文字列の文字数をカウントします。

長さ ('jose')

4

length(,)

int

特定のエンコード形式の文字列の文字数をカウントします。

長さ ('jose' 、'UTF8')

4

lpad(,[,])

テキスト

左側の文字列を指定した文字列で特定の長さにパディングします。

lpad('hi', 5, 'xy')

xyxhi

ltrim([,])

テキスト

文字列の左側から特定の文字セットの文字を削除します。 文字セットを指定しない場合、空白、タブ、改行などの空白文字はデフォルトで削除されます。

ltrim('zzzytest' 、'xyz')

テスト

md5()

テキスト

文字列のMD5ハッシュ値を計算します。

md5('abc')

900150983cd24fb0 d6963f7d28e17f72

parse_ident([,DEFAULT true ] )

text[]

SQL識別子ルールに準拠した文字列を解析し、文字列をスキーマとオブジェクト名に分割します。

parse_ident('"SomeSchema".someTable')

{SomeSchema,sometable}

pg_client_encoding()

name

現在のセッションのクライアントエンコード名を返します。

pg_client_encoding()

SQL_ASCII

quote_ident()

テキスト

文字列をSQL文で安全に使用できる識別子に変換します。

quote_ident('Foo bar')

「フーバー」

quote_literal()

テキスト

文字列をTEXT型に強制的に変換し、文字列を引用符で囲みます。

quote_literal(E'O\'Reilly')

'O''Reilly'

quote_literal( value anyelement)

quote_literal()

テキスト

値をTEXT型に強制的に変換し、値を引用符で囲みます。

quote_literal(42.5)

'42.5 '

quote_nullable()

テキスト

文字列をTEXT型に強制的に変換し、文字列を引用符で囲みます。 関数にNULLを指定した場合、NULLが返されます。

quote_nullable(NULL)

NULL

quote_nullable()

テキスト

任意の型の値をTEXT型に強制的に変換し、値を引用符で囲みます。

quote_nullable(42.5)

'42.5 '

regexp_match(,[,])

text[]

正規表現の一致を実行します。 この関数は、特定の文字列の特定のパターンに一致する部分文字列を検索し、一致する配列を返します。 複数の一致が存在する場合、各一致は要素として返されます。 一致するものが存在しない場合、NULLが返されます。

regexp_match('foobarbequebaz', '(bar)(beque)')

{bar,beque}

regexp_matches(,[,])

setof text[]

正規表現の一致を実行します。 この関数は、特定の文字列の特定のパターンに一致する部分文字列を検索し、すべての一致を返します。

regexp_matches('foobarbequebaz' 、'ba.'、'g')

{bar}

{baz}

(2行)

regexp_replace(,,[,])

テキスト

POSIX正規表現に一致する部分文字列を置き換えます。

regexp_replace('Thomas', '.[mN]a.', 'M')

ThM

regexp_split_to_array(,[,])

text[]

POSIX正規表現を区切り文字として使用して、文字列を分割します。

regexp_split_to_array('hello world', '\s +')

{hello,world}

regexp_split_to_table(,[,])

setofテキスト

POSIX正規表現を区切り文字として使用して、文字列を分割します。

regexp_split_to_table('hello world', '\s +')

こんにちは

世界

(2行)

repeat(,))

テキスト

特定の文字列を特定の回数繰り返します。

リピート ('Pg', 4)

PgPgPgPg

replace(,,)

テキスト

特定の文字列で特定の部分文字列を検索し、その部分文字列を別の指定された部分文字列に置き換えます。

replace('abcdefabcdef', 'cd', 'XX')

abXXefabXXef

reverse()

テキスト

特定の文字列の文字の順序を逆にします。

リバース ('abcde')

edcba

right(,)

テキスト

特定の文字列から右端のn文字を抽出します。

右 ('abcde', 2)

de

rpad(,[,])

テキスト

右側の文字列を特定の長さにパッドします。

rpad('hi', 5, 'xy')

hixyx

rtrim([,])

テキスト

文字列の末尾から指定した文字または空白文字を削除します。

rtrim('testxxzx' 、'xyz')

テスト

split_part(,,)

テキスト

特定の区切り文字を使用して文字列を分割します。

split_part('abc ~ @ ~ def ~ @ ~ ghi', '~ @ ~', 2)

def

strpos(,)

int

文字列部分文字列の最初の出現位置を検索します。

strpos('high' 、'ig')

2

substr(,[,])

テキスト

文字列から部分文字列を抽出します。

substream ('alphabet', 3, 2)

ph

starts_with(,)

bool

特定の文字列が特定のプレフィックスで始まる場合、trueを示すtを返します。

starts_with('alphabet', 'alph')

t

to_ascii([,])

テキスト

別のエンコード形式の文字列をASCIIに変換します。 LATIN1LATIN2LATIN9、およびWIN1250エンコード形式のみを変換できます。

to_ascii('Karel')

カレル

to_hex (または)

テキスト

INTEGER型またはBIGINT型の数値を対応する16進表現に変換します。

to_hex(2147483647)

7fffffff

translate(,,)

テキスト

文字列内の特定の文字を他の文字に置き換えます。

翻訳 ('12345' 、'143' 、'ax')

a2x5