gpt4 book ai didi

sql - 我怎样才能只得到一个结果? SQL : CASE Returns two rows

转载 作者:行者123 更新时间:2023-12-04 08:26:19 24 4
gpt4 key购买 nike

我有两个汽车信息表来确定他们拥有哪种类型的发动机。因此,我需要第二张表,其中列出了汽车的所有特殊设备。表 1 区分了电池和无电池。通过表2中的专用设备的 key ,可以识别“无电池”汽车是混合动力汽车还是内燃机汽车。如果他们有特殊装备“ABC” key ,他们就是混合动力汽车。如果不是,它们就是内燃机车。
表一:

> ID    |Car    |Engine      |
> 1 |RED |BATTERY |
> 2 |YELLOW |NO-BATTERY |
> 3 |BLUE |NO-BATTERY |
表2:
-ID-|SPECIAL EQUIPMENT
1 |AAA
1 |BBB
1 |CCC
2 |ABC
2 |BBB
2 |CCC
3 |ABC
3 |BBB
3 |CCC
SQL 查询是:
SELECT DISTINCT    mytable.id, mytable.car, mytable.engine
FROM
(SELECT table1.id, table1.car, table1.engine, table1.type,

CASE WHEN table1.type = 'Battery' THEN 'BEV'
WHEN table1.type = 'No-Battery' THEN (CASE WHEN special Equipment = 'ABC' THEN 'HYBRID'
ELSE 'COMBUSTION' END)
END AS engine

FROM table1
INNER JOIN table 2 key ON table1.id = table2.id
WHERE (cars.id = 2 )
)t;
CAR ID 2 --> 2 列的 SQL 代码返回,一次使用发动机类型混合动力,一次使用发动机类型燃烧。
结果(当前):
> ID    |Car    |type        |engine
> 2 |YELLOW |NO-BATTERY |HYBRID
> 2 |YELLOW |NO- BATTERY |COMBUSTION
我想展示:
> ID    |Car    |type        |engine
> 2 |YELLOW |NO-BATTERY |HYBRID
燃烧的结果是错误的,但显示出来了……我怎么才能得到一个正确的返回?

最佳答案

我想你只是想要 exists :

select t1.*,
(case when exists (select 1
from table2 t2
where t2.id = t1.id and t2.special = 'ABC'
)
then 'Hybrid' else 'Combustion'
end) as engine
from table1 t1;

关于sql - 我怎样才能只得到一个结果? SQL : CASE Returns two rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65246798/

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