1

期待される形式に置き換える文字列があります。

入力: 次の文字列があります。

'A,B,C,D,E,F,G,H,I,J,K,L'

上記の文字列を次の形式に置き換えたいと思います。

'x.A = z.A ,
 x.B = z.B , 
 x.C = z.C , 
 x.D = z.D , 
 x.E = z.E , 
 x.F = z.F ,
 .........
 .........
 x.L = z.L'

私の試み

SELECT 'x.'||REPLACE('A,B,C,D,E,F,G,H,I,J,K,L',',',' = z.')
4

2 に答える 2

2
SELECT 'x.' || col || '=z.' || col
FROM (
      SELECT unnest(regexp_split_to_array('A,B,C,D,E,F,G,H,I,J,K,L', ',')) col
     ) t
于 2016-01-06T10:04:38.070 に答える
1

あなたは使用することができstring_aggますFORMAT

SELECT string_agg(FORMAT('x.%s = z.%s', t,t) , ',')
FROM (SELECT unnest(regexp_split_to_array('A,B,C,D,E,F,G,H,I,J,K,L', ',')) AS t
     ) AS sub;

区切り文字として使用しE',\r\n'て、キャリッジ リターンを取得できます。

SELECT string_agg(FORMAT('x.%s = z.%s', t,t) , E',\r\n')
FROM (SELECT unnest(regexp_split_to_array('A,B,C,D,E,F,G,H,I,J,K,L', ',')) AS t)
      AS sub

出力:

x.A = z.A,
x.B = z.B,
x.C = z.C,
x.D = z.D,
x.E = z.E,
x.F = z.F,
x.G = z.G,
x.H = z.H,
x.I = z.I,
x.J = z.J,
x.K = z.K,
x.L = z.L 
于 2016-01-06T10:06:15.727 に答える