根据案例陈述省略记录

时间:2014-10-22 14:05:13

标签: sql sql-server

这是我的地址列表报告。基本上是客户和程序。客户端可以从一个程序中释放,但仍然在另一个程序中处于活动状态,因此我想省略某个程序的这些记录。 现在我在我的选择中试图做这样的事情:

case prg.Program
when 'AES' then c.clientid not in (2938,30495,4958)
else prg.Program
end as test

基本上我希望这些记录在程序是AES时不显示。但是,如果他们有另一个程序,我希望他们仍然出现。这可能吗?

同样程序和clientid都被声明为变量,不知道这是否有帮助

1 个答案:

答案 0 :(得分:2)

你可能想要这样的东西:

(case when prg.InterAct_Program <> 'AES' or c.clientid not in (2938, 30495, 4958)
      then prg.InterAct_Program
 end)

这将返回值NULL

您可能还需要where子句:

where (prg.InterAct_Program <> 'AES' or c.clientid not in (2938, 30495, 4958))

这实际上会过滤掉行。