gpt4 book ai didi

sql - 从不同行中检索组合作为输入 SQL

转载 作者:行者123 更新时间:2023-12-04 22:38:38 29 4
gpt4 key购买 nike

我是 SQL 的新手,但遇到了一个问题。我有一个具有以下结构的表格...表格格式是我无法更改的。我尝试过 INNER 联接和交叉联接,但这对我帮助不大。

我必须检索所有取决于我的输入的记录,例如,如果我的输入是 Chicago、Sedan 和 chilly。

我应该只检索 Chicago 或 Sedan 或 Chilly 或 Chicago 和 Sedan 或 Chicago 和 chilly 等的组合...例如,在下表中不应检索 ID 4,因为它是 new york 和 chilly 的组合。

如有任何帮助,我们将不胜感激。

ID  TYPE    CODE
1 CITY Chicago
1 CAR SEDAN
1 WEATHER CHILLY
2 WEATHER CHILLY
2 CAR SEDAN
3 CITY Chicago
4 CITY New York
4 CAR SEDAN

Table Format

最佳答案

赛,

你可以试一试,看看这是不是你想要的。

我确实在您的原始示例表中添加了一行,只是为了帮助说明此 SQL 将如何呈现。

ID  TYPE    CODE
1 CITY Chicago
1 CITY Dallas
1 CAR SEDAN
1 WEATHER CHILLY
2 WEATHER CHILLY
2 CAR SEDAN
3 CITY Chicago
4 CITY New York
4 CAR SEDAN

使用此 SQL 将使您的表输出成为一种更易于管理的格式。

    SELECT * FROM 
((select id, type, code from TABLE1 t1)
pivot (listagg(code,',') within group (order by type)
for type in('CITY' as CITY,'CAR' as CAR, 'WEATHER' as WEATHER)))
order by id

这会将上面的表格格式变成下面格式化的记录集。

ID CITY             CAR     WEATHER
1 Chicago,Dallas SEDAN CHILLY
2 (null) SEDAN CHILLY
3 Chicago (null) (null)
4 New York SEDAN (null)

当然,如果您希望在输出中的每个项目周围放置引号,您可以这样做。

    SELECT * FROM 
((select id, type, code from TABLE1 t1)
pivot (listagg(''''||code||'''',',') within group (order by type)
for type in('CITY' as CITY,'CAR' as CAR, 'WEATHER' as WEATHER)))
order by id

这将呈现为

ID    CITY                CAR      WEATHER
1 'Chicago','Dallas' 'SEDAN' 'CHILLY'
2 (null) 'SEDAN' 'CHILLY'
3 'Chicago' (null) (null)
4 'New York' 'SEDAN' (null)

这是否更符合您的要求?

关于sql - 从不同行中检索组合作为输入 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51015648/

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