【发布时间】:2009-01-30 22:28:26
【问题描述】:
我想创建一个 SQL Select 来在 MS SQL Server 2005 中进行单元测试。基本思路是这样的:
select 'Test Name', foo = 'Result'
from bar
where baz = (some criteria)
这个想法是,如果“foo”列的值是“Result”,那么我会得到一个值 true/1;如果不是,我会得到 false/0。
不幸的是,T-SQL 不喜欢这个表达式;它在等号上窒息。
是否有某种方法可以评估 SQL 选择列表中的表达式并获得可返回的结果? (或者其他实现我想要的单元测试的方法?)
编辑:3 个很好的答案,都是围绕 CASE 构建的。我会接受 feihtthief 的,因为他的代表最少,因此最需要它。 :-) 谢谢大家。
【问题讨论】:
-
TSQL 对布尔值的处理是多么荒谬,他永远不会停止惊奇。顺便说一句,好问题。
标签: sql unit-testing tsql expression assert