我有以下@temp 表:
SELECT *
FROM @temp
WHERE LinkingID = 1
------------------------------------------------------------------
|Condition_ID LinkingID Operator Variable1 Variable2 |
| 1 1 == 25 2 |
| 2 1 <> 3 7 |
| 3 1 == 4 4 |
------------------------------------------------------------------
我想实现一个CASE
( ??? ),它将检查Variable1 OPERATOR
Variable2是否为真,检查所有行,如果所有行都为真,则执行某些操作,否则中断并中止。
我在想这样的事情(我不确定如何在 T-SQL 中表达,所以我使用伪语言):
CASE
WHEN Operator LIKE '=='
THEN IF Variable1 == Variable2 THEN TRUE
ELSE THEN FALSE
WHEN Operator LIKE '<>'
THEN IF Variable1 <> Variable2 THEN TRUE
ELSE THEN FALSE
FROM @temp
如果所有行的结果都为真,那么做一些事情,否则做其他事情
在上面的场景中:
Row1 将返回 Row2 将FALSE
返回TRUE
Row3 将返回TRUE
因此结果是FALSE
。