gpt4 book ai didi

sql - 使用列的值进行选择

转载 作者:行者123 更新时间:2023-12-04 18:30:15 26 4
gpt4 key购买 nike

我有一个项目表,由它们的唯一 ID 以及一些属性标识。

为了保持表的可读性,属性始终存储在“prop_value”列中,其类型存储在“prop_type”列中

为简化起见,我只使用了三个属性,实际上有 12 个。

+----+-------------+-------------+
+ ID + prop_type + prop_value +
+----+-------------+-------------+
+ 1 + prop1 + foo +
+----+-------------+-------------+
+ 1 + prop3 + toto +
+----+-------------+-------------+
+ 3 + prop2 + lorem +
+----+-------------+-------------+

目的是在单行中获取项目的所有属性,结果如下:

+----+-------------+-------------+-------------+
+ ID + prop1 + prop2 + prop3 +
+----+-------------+-------------+-------------+
+ 1 + foo + NULL + toto +
+----+-------------+-------------+-------------+
+ 2 + NULL + lorem + NULL +
+----+-------------+-------------+-------------+

一开始,我使用了一个非常丑陋的方案:

select prop1 from myTable where id = 1
select prop2 from myTable where id = 1
...

现在我正在扩大规模,这需要很长时间,我想在一次查询中完成。

我试过类似的东西:

select a.prop_value, b.prop_value, c.prop_value from myTable a FULL JOIN myTable b FULL JOIN myTable c ...

但感觉我正在做一些比它需要的更复杂的事情。

是否有一个紧凑的解决方案来实现这一目标?感谢您的帮助。

最佳答案

使用PIVOT:

SELECT *
FROM your_table
PIVOT ( MAX( prop_value ) FOR prop_type IN (
'prop1' AS prop1,
'prop2' AS prop2,
'prop3' AS prop3
) )

关于sql - 使用列的值进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43915876/

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