私はLinuxで作業しており、文字列は次のようになります。
SELECT concat_ws("|",max(date_column),substr(abc,1,9)) key
SELECT concat_ws("|",xyz_date_column,abc) key
以下の出力を取得するには、動的日付列を文字列に変換するコマンドが必要ですsed
。 concat_ws関数では、対応する列のみを変換する必要があります。 concat_ws("|", 各ファイル以降の内容はすべて異なります。
SELECT concat_ws("|",(CAST (max(date_column) as string)),substr(abc,1,9)) key,
SELECT concat_ws("|",(CAST (xyz_date_column) as string),abc) key
このコマンドを試しましたが、期待した結果が得られませんでした。
sed -e 's/concat_ws(\([^\)]*\))/concat_ws(CAST(\1 as string))/g'
ベストアンサー1
努力する:
sed -E 's/(concat_ws\("\|",[[:space:]]*)([^,]*),/\1(\2),/;
s/(concat_ws\("\|",[[:space:]]*)([^,]*),/\1(CAST (\2 as string)),/' infile
最初の部分は次のとおりです。データ列
追加のブラケットがある部分。投げる。
出力:
SELECT concat_ws("|",(CAST ((max(date_column)) as string)),substr(abc,1,9)) key
SELECT concat_ws("|",(CAST ((xyz_date_column) as string)),abc) key