gpt4 book ai didi

mysql - 如何将一列分成几列?

转载 作者:行者123 更新时间:2023-11-29 07:26:34 24 4
gpt4 key购买 nike

我有一张 table :

DataTable:
id int,
user_id int,
field_id int,
value varchar

数据示例:

id    user_id    field_id   value 
1 1 1 'Peter'
2 1 2 56
3 1 3 100
4 2 1 'Buzz'
5 2 2 47
6 2 3 120

我想通过 field_id 属性分隔 value 列:

Name    Age     Score
Peter 56 100
Buzz 47 120

我尝试过:

SELECT
CASE
WHEN field_id = 1 THEN value
END as Name,
CASE
WHEN field_id = 2 THEN value
END as Age,
CASE
WHEN field_id = 3 THEN value
END as Score
FROM Users u
INNER JOIN DataTable t ON (t.user_id=u.id)

但是得到了:

Name    Age     Score
Peter null null
null 56 null
null null 100
Buzz null null
null 47 null
null null 120

有什么建议吗?

最佳答案

您可以将GROUP BY应用于您的查询。 Name 可能不是唯一的,您可以考虑按 id 分组:

SELECT id, MAX(Name) AS Name, MAX(Age) AS Age, MAX(Score) AS Score
FROM (
SELECT u.id
CASE
WHEN field_id = 1 THEN value
END as Name,
CASE
WHEN field_id = 2 THEN value
END as Age,
CASE
WHEN field_id = 3 THEN value
END as Score
FROM Users u
INNER JOIN DataTable t ON (t.user_id=u.id)
) AS sub
GROUP BY id;

关于mysql - 如何将一列分成几列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34342654/

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