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的代表,因此最需要它。 :-) 谢谢大家。

4 Solutions collect form web for “SQLselect列表中的布尔expression式”

使用案例结构:

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) 

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

  • 私有方法的unit testing
  • 在Java中嘲笑静态块
  • 如何在eclipse中轻松创buildunit testing
  • unit testingAngularJS服务时注入依赖服务
  • 如何使用ArgumentCaptor进行存根?
  • 规格。 为JUnit XML输出
  • 在Django 1.7中运行unit testing时禁用迁移
  • Selenium支持无头浏览器testing吗?
  • 我如何在AngularJS中testing广播事件
  • Mockito可以不考虑参数存根方法吗?
  • pytest:断言几乎相等