2017-01-23 4 views
1

テーブルを整理するためにあなたの助けが必要です。 2つの新しい列を追加しました。これらの列(col2、col3)に別のデータ(col1)を入力したいと思います。現時点では、この列には「val1; val2」で区切られた2つの値が含まれています。2つの列に別のデータを入力するSQLスクリプト

COL1は、文字列が含まれていますが、時にはVAL1は存在せず、COL1のみが含まれています「;とval2」この表の行ごとに

が、私は日付がこのコードを実行分離するためCOL1の値を分割したいです:

  1. (!VAL1 = null)の場合はcol3という= 1
  2. COL2 = val2の
  3. COL1 = val1と

最後に、すべての列には1つの値しか含まれていません。

Before the script: 
col1 (string) = "tom;car" 

After the script: 
col1 (string) = "tom" 
col2 (string) = "car" 
col3 (bit) = "1" 

SQL Serverの管理でこれを直接行う方法がわかりません。このコードを実行するためのスクリプトを作成したいと思います。

+1

次の例のデータを与える必要があります。例えば、 'col1'は' 42,4711'を含んでいます。そして最終的にcol2では '42'、col3では' 4711'を最終的に作りたいと思っています。それらは数値ですか?彼らは弦ですか?それらはタイムスタンプまたは日付ですか?必要なコードに影響を与えるすべてのもの。 – marcothesane

+1

サンプルデータと望みの結果は本当にあなたがしたいことを説明するのに役立ちます。 –

答えて

1

これは何か?

update t 
    set col3 = (case when col1 not like ';%' then 1 else col3 end), 
     col1 = left(col1, charindex(';', col1) - 1), 
     col2 = substring(col1, charindex(';', col1) + 1, len(col1)); 
+0

がうまく見えます。私は試してみると、私はあなたに戻ってくる。あなたの返信ありがとう –

+0

ありがとう、非常に男。それはまさに私が望んでいたものです。 –

関連する問題