【发布时间】:2019-08-30 04:00:36
【问题描述】:
我有一个复杂的连接部分,其中包括一个 CASE WHEN 来构造一个 URL。这对于部分构造来说效果很好,但是当每个 CASE 都包含一个 Concat 时,我在做 CASE 时遇到了问题。我有几个案例中的任何一个都可以单独使用
CASE wHEN T1.Name='X' THEN Concat('A',T1.Field1)
ELSE ''
END
或
CASE WHEN T1.Name='Y' THEN Concat('B',T1.Field2)
ELSE ''
END
一旦我尝试去做
CASE WHEN T1.Name='X' THEN Concat('A',T1.Field1)
CASE WHEN T1.Name='X' THEN Concat('A',T1.Field2)
ELSE ''
END
我收到类似的错误
[Err] 1064 - 您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本以获得正确的语法 在第 5 行的 CASE WHEN T1.Name='X' THEN Concat' 附近使用
【问题讨论】:
-
如果我没记错的话,你的语法是错误的。 Donno 关于 MySQL,Oracle 应该有“当 condition0 然后 stmnt0 当 condition1 然后 stmnt1 else end”的情况。所以“case”不会重复。