多くのユーティリティ関数、ここで切断機能の組み合わせおよび組み込みのPostgreSQL
のPostgreSQL 9.1.2:環境
のCentOS 5.7ファイナル
A合成機能。
1.concatの
Aの説明。
CONCAT(STR "任意の" [、strの"任意の" [、...]]) を連結のすべてが、セパレータとの最初の引数。 最初のパラメータがセパレータとして使用されます。 NULL引数は無視されます。
。Bの実用的な例であります:
Postgresの=#テーブルt_kenyon(ID int型、名前はvarchar(10)、発言テキスト)を作成します。 TABLE CREATE t_kenyon値(1、 'テスト'、 'ケニヨン')へのPostgres =#インサートを、(2、 'だけ'、 '中国')、(3、 'IAM'、 'lovingU')。 INSERT 0~3 のPostgres =#t_kenyon値への挿入(4、 'テスト'、NULL); INSERT 0~1 のPostgres =#t_kenyon値への挿入(5、NULL、 'アデル')。 INSERT 0 1つ のpostgres =#t_kenyonから*選択します。 ID | 名前| 発言 ---- + ------ + --------- 1 | テスト| ケニヨン 2 | ちょうど| 中国 3 | IAM | lovingU 4 | テスト| 5 | | アデル (5行) のPostgres =#t_kenyonから連結(ID、名前、注釈)を選択し、 2justchina 3iamlovingU 4test 5adele (5行)
、あなたは次の関数のCONCAT_WSを使用する必要があるc。必要に応じて説明concat関数は、純粋にスプライシングの関数であり、スプライシングはNULL値の値が、ノーモザイク区切り、区切り文字を無視することができます。
2.concat_ws
A.はじめに
CONCAT_WS(SEPテキスト、STR "任意の" [、strの"任意の" [、...]]) 区切りで連結し、すべてが、最初の引数。 最初のパラメータがセパレータとして使用されます。 NULL引数は無視されます。
B。実用化
t_kenyonからのPostgres =#選択CONCAT_WS( ''、ID、名前、発言)。 CONCAT_WS --------------- 1、テスト、ケニオン 2、単に、中国 3、IAM、lovingU 4、試験 5、アデル (5行) のPostgres =#CONCAT_WSを選択し( '_' t_kenyonから、ID、名前、発言)。 CONCAT_WS --------------- 1_test_kenyon 2_just_china 3_iam_lovingU 4_test 5_adele (5行) のPostgres =#t_kenyonからCONCAT_WS( ''、ID、名前、注釈)を選択し、 CONCAT_WS ------------- 1testkenyon 2justchina 3iamlovingU 4test 5adele (5行) Postgresは=#t_kenyonからCONCAT_WS( '^ _ *'、ID、名前、発言を)選択します。 CONCAT_WS ------------------- 1 ^ _ *テスト^ _ *ケニヨン 2 ^ _ *ちょうど^ _ *中国 3 ^ _ * IAM ^ _ * lovingU 4 ^ _ *テスト 5 ^ _ *アデル (5行)
セパレータ機能の機能よりC. CONCAT_WS説明concat関数は、実際には、連結アップグレードされたバージョン、セパレータ「の場合は」、取り出し、結果は同じ連結です。また、その機能とMySQL GROUP_CONCAT比較的類似した機能だけでなく、異なる、CONCAT_WSにおけるPGセパレータセパレータとして複数の文字をサポートし、毎日の使用は、以上であってもよい||。
第二に、切断機能
1.split_partの
A.はじめに
split_part(文字列テキスト、区切りテキスト、フィールドint型) 区切り文字で分割文字列と指定されたフィールドを返します(1からカウント)
B。実際の例
Postgresは=#( 'ABC〜@〜デフ〜@〜GHI'、 '〜@〜'、2)split_partを選択します。 split_part ------------ DEF (1行) のpostgres =#選択split_part( '今|年|月'、 '|'、3); split_part ------------ 月 (1行)
Cはセパレータをピックアップするために、特定の場所によって非常に効果的な関数値を記載
2.regexp_split_to_table
A.はじめに
regexp_split_to_table(文字列テキスト、パターンテキスト[、フラグテキスト]) デリミタとしてPOSIX正規表現を使用して分割ストリング。
B。使用例
#= SELECT regexp_split_to_tableのPostgres( 'ケニヨン、中国、愛,,!'、 ''); regexp_split_to_table ----------------------- ケニヨン 愛 中国 ! (行5) -区切り切断によって PostgresはSELECTをregexp_split_to_table =#( 'ケニオン、中国、愛する'、 ''); regexp_split_to_table -------------------- --- ケニヨン 中国 ラブズ (行3) -アルファベット切断 PostgresはSELECTをregexp_split_to_table =#( 'ケニオン,,中国'、E '\\ S *'); regexp_split_to_table ------------ ----------- K E N- Y O N - 、 、 C H I N (13行)
3.regexp_split_to_array
A.はじめに
regexp_split_to_array(文字列テキスト、パターンテキスト[、フラグテキスト]) デリミタとしてPOSIX正規表現を使用して分割ストリング。
B。実際の例
Postgresは=#SELECT regexp_split_to_array( 'ケニヨン、愛,,中国,!'、 ''); regexp_split_to_array -------------------------- {ケニヨン、愛、 ""、中国,!} (1行) のPostgres =#SELECT regexp_split_to_array(」 !ケニヨン、愛,,中国」、 'S *'); regexp_split_to_array ----------------------------------------------- {K 、E、N、Y、O、N ""、L、O、V、E、 ""、 ""、C、H、I、N、,!} (1行)