2017-10-13 3 views
1

私は列がPHPのシリアル化されたオブジェクトであるredshiftのテーブルを持っています。私はredshift文字列関数を使用し、列を逆シリアル化して、逆シリアル化された値を持つ別の一時テーブルを作成します。例えば : 初期テーブルが文字列関数を使用してamazon redshiftでphpオブジェクトを逆シリアル化します

| col A | |a:1:{i:145;s:2:"14";} | |a:1:{i:145;s:2:"15";} | |a:1:{i:145;s:2:"16";} |

ようになり、さらなる処理のために期待される出力の一時表は次のとおりです。

| Col A | Col B | | 145 | 14 | | 145 | 15 | | 145 | 16 |

どのように私は、このオブジェクトをデシリアライズするために、赤方偏移文字列関数を使用することができます?それはこのように働くだろう、あなたの特定のケースについて

答えて

2

select 
split_part(split_part('a:1:{i:145;s:2:"14";}',':',4),';',1) 
,trim(split_part(split_part('a:1:{i:145;s:2:"14";}',':',6),';',1),'"'); 

この構造体の他のフォーマットがあることができれば、これは私が思いついた

0

ソリューション仕事に行くのではありません。

SELECT REGEXP_SUBSTR(SPLIT_PART(VALUE,';',1),'[^:]*$') as fieldName1, trim('"' FROM REGEXP_SUBSTR(SPLIT_PART(VALUE,';',2),'[^:]*$')) as fieldName2;

関連する問題