CASE THEN 使用 CONCAT()

CASE THEN using CONCAT()

我有一个复杂的连接部分,其中包括构造 URL 的 CASE WHEN。这对于部分构造来说效果很好,但我 运行 遇到了当每个 CASE 都包含一个 Concat 时执行 CASE WHEN 的问题。我拥有的几个案例中的任何一个都可以单独使用

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 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near CASE WHEN T1.Name='X' THEN Concat' at line 5

您正在尝试在第一个函数中启动另一个 CASE 函数。删除第二个 CASE 它应该可以工作:

CASE WHEN T1.Name='X' THEN  Concat('A',T1.Field1)
     WHEN T1.Name='Y' THEN Concat('A',T1.Field2)
ELSE ''
END