我在SQL中有这个视图:
Table Name: cars
+----------+
| Car_Type |
+----------+
| volvo |
| tesla |
| audi |
+----------+
我使用左连接获得汽车类型。
现在我想使用 SQL CASE 语句isElectric
列,以了解汽车是否是电动
添加新列时,我的代码在视图中进行了硬编码:
CASE
WHEN cars.Car_Type = 'volvo' THEN cars.isElectric=0
WHEN cars.Car_Type = 'tesla' THEN cars.isElectric=1
WHEN cars.Car_Type = 'audi' THEN cars.horsepower=0
END
我想要以下输出:
+----------+-----------+
| Car_Type | isElectric|
+----------+-----------+
| volvo | 0 |
| tesla | 1 |
| audi | 0 |
+----------+-----------+
不幸的是,这不起作用,有谁知道如何解决这个问题?
谢谢
我假设您希望选择提供的值作为马力。如果这些值包含在汽车表中,则不需要 CASE - WHEN,只需从汽车表中选择马力列即可。
CASE
WHEN cars.Car_Type = 'volvo' THEN 150
WHEN cars.Car_Type = 'tesla' THEN 300
WHEN cars.Car_Type = 'audi' THEN 187
END AS Horsepower
正在更新您的更新:
CASE
WHEN cars.Car_Type = 'volvo' THEN 0
WHEN cars.Car_Type = 'tesla' THEN 1
WHEN cars.Car_Type = 'audi' THEN 0
END AS IsElectric
您也可以使用 CASE - WHEN - ELSE 执行此操作,因为您只选择 0 或 1
你想表达这一点吗?
(CASE WHEN cars.Car_Type = 'volvo' THEN 0
WHEN cars.Car_Type = 'tesla' THEN 1
WHEN cars.Car_Type = 'audi' AND crs.horsepower = 0 THEN 1
WHEN cars.Car_Type = 'audi' THEN 0
END) as isElectric