gpt4 book ai didi

sql - 如何从行获取 SQL 结果 View 以分隔列

转载 作者:行者123 更新时间:2023-12-03 23:39:18 26 4
gpt4 key购买 nike

我有一个返回结果的复杂选择查询:

  1_id   2_id   3_id    4_id   CultureId
value1 value2 value3 a 1
value1 value2 value3 b 2
我需要以这样的格式获得结果:
  1_id   2_id   3_id    4_id_1   4_id_2  
value1 value2 value3 a b
我能够想出这一点,但也许有更好的方法来实现这一目标?
SELECT 1_id, 2_id, 3_id, (SELECT 4_id from table where 1_id = value1 and CultureId = 1) as 4_id_1, 
(SELECT 4_id from table where 1_id = value1 and CultureId = 2) as 4_id_2
from table where 1_id = value1
问题是我在解决方案中使用了 3 次的实际内部 SELECT 查询(“SELECT 1_id, 2_id, 3_id, 4_id CultureId from table where 1_id = value1”)是一个复杂的查询,并且包含的​​连接很少,使该解决方案变得巨大。
有没有办法简化它?

最佳答案

您可以聚合和使用 min()max() :

select id_1, id_2, id_3,
min(cultureId) as cultureid_1,
nullif(max(cultureId), min(cultureId)) as cultureid_2
from t
group by id_1, id_2, id_3;

关于sql - 如何从行获取 SQL 结果 View 以分隔列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66923982/

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