我想创建一个SQL选择做在MS SQL Server中的单元测试2005年的基本思路是这样的:

选择“测试名称”,富=“结果” 从酒吧 其中巴兹=(一些条件)

这个想法是,如果“foo”的列的值是“结果”,然后我得到的真/ 1的值;如果不是,我会得到假/ 0。

不幸的是,T-SQL不喜欢的表达;它扼流圈上等号。

有没有在SQL SELECT列表计算表达式并得到一个可回收结果的某种方式? (或实现我想要的单元测试的一些其他方式?)


编辑:3大,答案,周围的情况下,所有建。因为他得到了至少代表我会接受feihtthief的,因此需要它最。 :-)感谢大家。

有帮助吗?

解决方案

使用的情况下的结构:

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)

我知道这是问而回,但我希望这可以帮助别人那里。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top