当我尝试添加在连接多个输入之前必须满足的条件时,我似乎无法获得正确的语法,我将在下面留下代码,但本质上是 CASE when 'Condition'THEN 连接这些字符串 + 列然后给我 X ELSE 0 本质上与任何其他 case when 语句一样,但使用 concat。我尝试过 IF 语句,但也没有成功(我主要使用 MYSQL)
我使用 concat 两次的原因是信息位于两个单独的表中,所以我需要使用 ||产生我需要的输出,但我想要 10 种情况,根据这些条件之一是否为真,它将发出该串联
CASE WHEN 'specific condition' THEN concat('string',employee2.firstname) || concat('/employerid/',employee.lastname) ELSE 'Null')
WHEN ....
WHEN.....
WHEN ....END) as employee_ID
最佳答案
运算符||
是logical OR operator在 MySql 中而不是连接运算符(除非启用了 PIPES_AS_CONCAT SQL 模式)。
the reason I am using concat twice is the info is in two separate tables
如果您想要连接所有 4 个值,那么您只需从 CASE
表达式访问两个表,就没有理由使用 concat()
两次。
Concat()
可以采用多个参数,因此可以使用:
concat('string',employee2.firstname) || concat('/employerid/',employee.lastname)
这样做:
concat('string',employee2.firstname, '/employerid/',employee.lastname)
注意:'Null'
不是 NULL
,它是一个字符串文字。
所以做这样的事情:
CASE
WHEN 'specific condition' THEN concat('string',employee2.firstname,'/employerid/',employee.lastname)
WHEN ....
WHEN.....
WHEN ....
END as employee_ID
如果您只想返回 NULL
,则不需要 ELSE
部分。
关于MYSQL 连接时的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59219188/