Eli*_*ias 20 sql sql-server syntax case
我几乎可以肯定你不能在case语句的上下文中做到这一点,我也找不到任何关于它的文档,但是可以做到以下几点:
SELECT CASE WHEN testValue > 2
THEN testValue(Without Repeating it) ELSE FailValue)
END
FROM Table
Run Code Online (Sandbox Code Playgroud)
一个更好的更彻底的例子:
Select CASE WHEN (Foo-stuff+bar) > 2
THEN Conditional statement without >2 Else "Fail"
END
FROM TABLE
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来创建一个选择而不重复条件查询.
编辑:由于我的一个不好的例子,我一直在寻找缺乏答案:
testValue = (Table.A / Table.B) * Table.C Table.D
SELECT CASE WHEN testValue > 2
THEN testValue ELSE FailValue)
END
FROM Table
Run Code Online (Sandbox Code Playgroud)
Unh*_*ean 20
像这样
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
Run Code Online (Sandbox Code Playgroud)
编辑:在仔细查看问题后,我认为最好的选择是创建一个计算值的函数.这样,如果您最终有多个位置需要完成计算,那么您只需要一个点来维护逻辑.
Gid*_*dil 19
查询可以写得稍微简单,如下所示:
DECLARE @T INT = 2
SELECT CASE
WHEN @T < 1 THEN 'less than one'
WHEN @T = 1 THEN 'one'
ELSE 'greater than one'
END T
Run Code Online (Sandbox Code Playgroud)