Mysql 然后使用CONCAT()进行案例分析
我有一个复杂的连接部分,其中包括一个构建URL的案例。这在部分施工中效果很好,但当每个案例都包含一个Concat时,我会遇到一些问题。我处理的几个案例中的任何一个都是独立的Mysql 然后使用CONCAT()进行案例分析,mysql,concat,case-when,Mysql,Concat,Case When,我有一个复杂的连接部分,其中包括一个构建URL的案例。这在部分施工中效果很好,但当每个案例都包含一个Concat时,我会遇到一些问题。我处理的几个案例中的任何一个都是独立的 CASE wHEN T1.Name='X' THEN Concat('A',T1.Field1) ELSE '' END 或 一旦我试着去做 CASE WHEN T1.Name='X' THEN Concat('A',T1.Field1) CASE WHEN T1.Name='X' THEN Concat('A',T1.
CASE wHEN T1.Name='X' THEN Concat('A',T1.Field1)
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服务器版本的正确语法
当T1.Name='X'然后在第5行使用Concat'时,使用近义词
您正试图在第一个案例中启动另一个
案例
函数。拆下第二个案例
,它应该可以工作:
CASE WHEN T1.Name='X' THEN Concat('A',T1.Field1)
WHEN T1.Name='Y' THEN Concat('A',T1.Field2)
ELSE ''
END
如果我记性好,你的语法就错了。关于MySQL,Oracle应该有“当条件0时,然后是stmnt0,当条件1时,然后是stmnt1 else end”的情况。所以“case”不会重复。这有非常清楚的例子:也可以使用
T1.Field1
而不是T1,Field1
。注意逗号和句点的对比。@BillKarwin是的,这就是我复制/粘贴的结果。@Its皮特,谢谢,新手犯了错误。无论如何,我会把这个放在这里作为路标
CASE WHEN T1.Name='X' THEN Concat('A',T1.Field1)
WHEN T1.Name='Y' THEN Concat('A',T1.Field2)
ELSE ''
END