SQL脚本用另一个

时间:2017-01-23 01:47:03

标签: sql sql-server

我需要你的帮助来整理一张桌子。我添加了两个新列。我想用另一个(col1)的数据填写这些列(col2,col3)。目前,该列包含两个由“val1; val2”分隔的值。

col1包含一个字符串,但有时val1不存在,col1只包含“; val2”

对于此表的每一行,我想拆分col1中的值以分隔执行此代码的日期:

  1. 如果(val1!= null)col3 = 1
  2. col2 = val2
  3. col1 = val1
  4. 最后,每列只包含一个值。

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

    我不知道如何在SQL Server Management中直接执行此操作。我想创建一个脚本来执行此代码。

1 个答案:

答案 0 :(得分: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));