SQLselect列表中的布尔expression式

我想创build一个SQLselect在MS SQL Server 2005中进行unit testing。基本思想是这样的:

select'Test Name',foo ='Result'from bar where baz =(某些标准)

这个想法是,如果“富”列的值是“结果”,那么我会得到一个值为true / 1; 如果不是,我会得到假/ 0。

不幸的是,T-SQL不喜欢expression式; 它在等号上窒息。

是否有某种方法来评估SQLselect列表中的expression式并获得可返回的结果? (或者其他一些实现我想要的unit testing的方法?)


编辑:3伟大的答案,都围绕CASEbuild成。 我会接受这个信号,因为他得到最less的代表,因此最需要它。 :-) 谢谢大家。

使用案例结构:

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

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

 SELECT 'TestName', CASE WHEN Foo = 'Result' THEN 1 ELSE 0 END AS TestResult FROM bar WHERE baz = @Criteria 

使用CASE:

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

你也可以使用:

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

我知道这是问了一阵子,但我希望这可以帮助那里的人。