我几乎可以肯定您无法在案例陈述的上下文中执行此操作,并且我无法找到任何有关它的文档,但是是否可以执行以下操作:
SELECT CASE WHEN testValue > 2
THEN testValue(Without Repeating it) ELSE FailValue)
END
FROM Table
一个更好、更彻底的例子:
Select CASE WHEN (Foo-stuff+bar) > 2
THEN Conditional statement without >2 Else "Fail"
END
FROM TABLE
我正在寻找一种在不重复条件查询的情况下创建选择的方法。
编辑:由于我的例子很差,并且缺乏我正在寻找的答案:
testValue = (Table.A / Table.B) * Table.C Table.D
SELECT CASE WHEN testValue > 2
THEN testValue ELSE FailValue)
END
FROM Table
最佳答案
像这样
DECLARE @t INT=1
SELECT CASE
WHEN @t>0 THEN
CASE
WHEN @t=1 THEN 'one'
ELSE 'not one'
END
ELSE 'less than one'
END
编辑: 在更多地研究这个问题之后,我认为最好的选择是创建一个计算该值的函数。这样,如果您最终有多个需要完成计算的地方,那么您只有一个点来维护逻辑。
关于SQL Server - 案例陈述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233077/