gpt4 book ai didi

MySQL根据列值选择多列

转载 作者:行者123 更新时间:2023-11-29 20:56:05 26 4
gpt4 key购买 nike

我在互联网和整个 Stackoverlow 上搜索了两次,但没有找到可行的解决方案。

假设我有一个包含以下列的表:a、b、c、d、e、f、g、h、i

a 是 1 到 16 之间的整数根据这个值,我必须选择是否选择 b-i。

示例:如果 a = 1 我需要 b,c,d,e,i。如果 a = 2 我需要 e,g,h,i

所以我可以使用:

SELECT
CASE a WHEN 1 THEN b WHEN 2 THEN NULL ELSE NULL END as a
....
CASE a WHEN 1 THEN NULL WHEN 2 THEN g ELSE NULL END as g

有没有更简单的方法,例如:

CASE a When 1 (select b,c,d,e,i)?

奖励愿望:我可以根据 a 的值选择 as 吗?示例

if a = 1 column b should be named "lol", if a = 2 b should be called "rofl".

最佳答案

我能想到的最接近您想要的就是连接您想要的列:

SELECT CASE a
WHEN 1 THEN CONCAT_WS(', ', b, c, d, e, i)
WHEN 2 THEN CONCAT_WS(', ', e, g, h, i)
END AS result

另一种解决方案是使用UNION

SELECT a, b, c, d, e, i
FROM yourTable
WHERE a = 1
UNION
SELECT a, e, g, h, i, null
FROM yourTable
WHERE a = 2

请注意,您不能根据 a 的值使用不同的列别名。整个查询只有一组列名。在 UNION 中,它们来自第一个子查询中的列名称或别名。

关于MySQL根据列值选择多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37618444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com