PostgreSQLデータベースフィールド機能及び切断の組み合わせ

多くのユーティリティ関数、ここで切断機能の組み合わせおよび組み込みの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行)

C説明の 
上記表現に使用されるフラグは、全ての分割しました*Linuxの

おすすめ

転載: www.cnblogs.com/telwanggs/p/12105437.html