多标准案例说明

时间:2018-06-22 16:13:18

标签: sql sql-server sql-server-2008

我有一个查询,其中包含由于交易被取消而重复的记录;在某些情况下,我想保留已取消的记录,而在另一些情况下,我想忽略它(如果客户在没有新买家的情况下退出交易,我想保留它-如果找到新买家,我想省略这样,每辆车都有一个记录)。我将根据具体情况修改查询。

我所知道的很少,我认为它应该类似于以下内容,但是我无法使其正常工作。

case [StockNo] when 'XXXXXX' and [FiWipStatusCode] = 'C' then 'omit' 
end as 'Filter'

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

您需要使用搜索的大小写语法

case when [StockNo]= 'XXXXXX' and [FiWipStatusCode] = 'C' then 'omit'end 
  as 'Filter'

来自CASE

Simple CASE expression:   
CASE input_expression   
     WHEN when_expression THEN result_expression [ ...n ]   
     [ ELSE else_result_expression ]   
END 


Searched CASE expression:  
CASE  
     WHEN Boolean_expression THEN result_expression [ ...n ]   
     [ ELSE else_result_expression ]   
END  

答案 1 :(得分:2)

扩展case 表达式中的条件:

(case when [StockNo] = 'XXXXXX' and [FiWipStatusCode] = 'C' then 'omit' 
 end) as Filter

此外,请勿在列别名周围使用单引号。这只会混淆列别名和字符串。