MYSQL
CASE WHEN :
A= 1 THEN后接多个字段:B、C、D
A=2 THEN 后接多个字段值:E、F、G
这种该怎么处理
在MySQL中,您可以使用CASE WHEN语句来根据条件返回不同的值。如果您想要根据A的值返回多个字段,您可以使用以下语法:
sql
SELECT CASE WHEN A = 1 THEN B, C, D ELSE E, F, G END AS result FROM your_table;
在这个例子中,如果A的值等于1,则会返回B、C、D这三个字段的值,并将结果命名为"result"。否则,如果A的值不等于1,则会返回E、F、G这三个字段的值,同样也将结果命名为"result"。
请注意,这个语句只返回一个结果集,其中每个行都包含一个结果值。如果您想要将多个字段的值分别作为不同的列返回,您可以使用SELECT语句中的多个列名,例如:
sql
SELECT CASE WHEN A = 1 THEN B ELSE E END AS col1,
CASE WHEN A = 1 THEN C ELSE F END AS col2,
CASE WHEN A = 1 THEN D ELSE G END AS col3 FROM your_table;
在这个例子中,根据A的值分别返回B、C、D或E、F、G,并将它们分别命名为"col1"、"col2"和"col3"。
SELECT
CASE
WHEN A = 1 THEN CONCAT(B, ',', C, ',', D)
WHEN A = 2 THEN CONCAT(E, ',', G, ',', F)
END AS MyCol
FROM table;
在MySQL中使用CASE WHEN语句时,可以根据A的值进行判断,然后返回不同的多个字段的值。下面是具体的解决方案:
SELECT
CASE
WHEN A = 1 THEN CONCAT(B, ', ', C, ', ', D)
WHEN A = 2 THEN CONCAT(E, ', ', F, ', ', G)
END AS result
FROM your_table;
在上述SELECT语句中,使用CONCAT函数将多个字段的值连接成一个字符串,并使用逗号分隔。
如果需要在结果中显示其他列的值,可以在SELECT语句中添加相应的列名,并在CASE WHEN语句之前进行选择。
SELECT
A,
CASE
WHEN A = 1 THEN CONCAT(B, ', ', C, ', ', D)
WHEN A = 2 THEN CONCAT(E, ', ', F, ', ', G)
END AS result
FROM your_table;
如果以上解决方案无法满足你的需求,或者有其他问题,请告知,我将尽力提供帮助。
SELECT
CASE
WHEN A = 1 THEN B
WHEN A = 2 THEN E
END AS col1,
CASE
WHEN A = 1 THEN C
WHEN A = 2 THEN F
END AS col2,
CASE
WHEN A = 1 THEN D
WHEN A = 2 THEN G
END AS col3
FROM
your_table;