将两个SQL Server列与值进行比较,并在第三列中插入输出

时间:2015-11-02 10:17:09

标签: sql-server

我有两列WL-Value和RF-Value,如果两者都有任何值,那么我们在第三列“Final”中插入值。如果那些列的值为0或null,那么只需要获取列标题值的列标题文本。

在根据WL-Value和RF-Value的值比较后,我需要查询在“最终”列中插入值。

------------------------------------------------------------------------  
ID   |    WL-Value      |            RF-Value        |        Final    |
------------------------------------------------------------------------
1         0                           243000                    RF
2        254365                        0                        WL
3        2478954'                     2874269                   RF,WL
4         0                             0                       Null
5        Null                           0                       Null

在检查其他两列

后查询“最终”列

2 个答案:

答案 0 :(得分:1)

试试这个:

update tablename
set [Final] =  case when  ([WL-Value] = 0 or [WL-Value] is null) and (([RF-Value] <> 0 or [RF-Value] is not null)) then 'RF'
                    when  ([WL-Value] <> 0 or [WL-Value] is not null) and (([RF-Value] = 0 or [RF-Value] is null)) then 'LF'
              else 'Null' end

答案 1 :(得分:1)

您可以在CASE的帮助下使用STUFF表达式进行格式化:

UPDATE tbl
SET Final = STUFF((
                CASE WHEN ISNULL([RF-Value], 0) > 0 THEN ',RF' ELSE '' END +
                CASE WHEN ISNULL([WL-Value], 0) > 0 THEN ',WL' ELSE '' END 
            ), 1, 1, '')