当前位置:  开发笔记 > 数据库 > 正文

SQL选择列表中的布尔表达式

如何解决《SQL选择列表中的布尔表达式》经验,为你挑选了4个好方法。

我想创建一个SQL Select来在MS SQL Server 2005中进行单元测试.基本思路是这样的:

从吧中选择'测试名',foo ='结果',其中baz =(某些标准)

这个想法是,如果"foo"列的值是"Result",那么我将得到一个值true/1; 如果不是,我会得到假/ 0.

不幸的是,T-SQL不喜欢这个表达式; 它在等号上窒息.

是否有某种方法可以在SQL选择列表中评估表达式并获得可返回的结果?(或者实现我想要的单元测试的其他方式?)


编辑:3个伟大的答案,全部围绕CASE.我会接受feihtthief,因为他的代表最少,因此最需要它.:-) 谢谢大家.



1> feihtthief..:

使用案例构造:

select 'Test Name', 
    case when foo = 'Result' then 1 else 0 end 
    from bar where baz = (some criteria)

另请参阅MSDN Transact-SQL CASE文档.



2> Joel Coehoor..:
SELECT 'TestName', 
    CASE WHEN Foo = 'Result' THEN 1 ELSE 0 END AS TestResult
FROM bar 
WHERE baz = @Criteria



3> John..:

使用案例:

SELECT 'Test Name' [col1],
  CASE foo
    WHEN 'Result' THEN 1
    ELSE 0
  END AS [col2]
FROM bar
WHERE baz = (some criteria)



4> 小智..:

您还可以使用:

select 
    'Test Name', 
    iif(foo = 'Result', 1, 0)
from bar 
where baz = (some criteria)

我知道这是有一段时间被问到的,但我希望这有助于那里的人.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有