Sql 编写嵌套的大小写表达式
我正在尝试编写一个条件,以便在case表达式中执行测试。我已经搜索过了,但找不到正确的语法Sql 编写嵌套的大小写表达式,sql,Sql,我正在尝试编写一个条件,以便在case表达式中执行测试。我已经搜索过了,但找不到正确的语法 CASE WHEN a.amount - b.amount <> 0 then (CASE WHEN a.amount - C.amount <> 0 then 'EXCEPTION' end) else 'PASS' end a.amount-b.amount为0时的情况 然后(如果a.amount-C.amount为0,则“异常”结束) 否则“通过”结
CASE WHEN a.amount - b.amount <> 0
then (CASE WHEN a.amount - C.amount <> 0 then 'EXCEPTION' end)
else 'PASS' end
a.amount-b.amount为0时的情况
然后(如果a.amount-C.amount为0,则“异常”结束)
否则“通过”结束
我想有语法问题
CASE
WHEN a.amount - b.amount <> 0 then
CASE
WHEN a.amount - C.amount <> 0 then 'EXCEPTION'
ELSE 'PASS'
end
else 'PASS'
end
虽然这是有效的SQL,应该适用于几乎所有的DBMS,但MySQL在这里完全有缺陷。我已经使用了这个表达式,并通过将
C.amount
(大写C)更改为C.amount
(小写C)使其工作。想象一下:-(
下面是一个演示:MySQL或SQL Server?它们不一样?只需删除括号…请删除不合适的DBMS标记(我假设是SQL Server)。如果您的语法有错误,那么您应该告诉我们错误消息,而不是让我们猜测。@RTL…我删除了不一致的数据库标记。请仅使用您真正使用的数据库进行标记。
CASE
WHEN (a.amount - b.amount) <> 0 AND (a.amount - C.amount) <> 0
then 'EXCEPTION'
else 'PASS' end