为什么CASE
语句应该在SELECT
语句之内?
第二个查询为什么不起作用?我的意思是,为什么CASE
语句应该在SELECT
语句之内?
第一个查询:
SELECT
report_code,
year, month, day,
wind_speed,
CASE
WHEN wind_speed >= 40 THEN 'HIGH'
WHEN wind_speed >= 30 AND wind_speed < 40 THEN 'MODERATE'
ELSE 'LOW'
END AS wind_severity
FROM
station_data;
第二个查询:
SELECT
report_code,
year, month, day,
wind_speed,
FROM
station_data
CASE
WHEN wind_speed >= 40 THEN 'HIGH'
WHEN wind_speed >= 30 AND wind_speed < 40 THEN 'MODERATE'
ELSE 'LOW'
END AS wind_severity;
答案 0 :(得分:0)
因为您想要条件(派生)列(所有在满足条件时),而不是选择列本身。按照SQL语法,所有列(无论是直列还是派生)都应是select语法的一部分。
答案 1 :(得分:0)
因为第二个代码在FROM后面的CASE语句语法错误
我们使用CASE语句在每一行的列中创建条件。因此,CASE语句需要成为SELECT的一部分
答案 2 :(得分:0)
您的第二个查询不起作用,因为它是错误的SQL syntax
,并且没有RDBMS支持该语法。
why should CASE statement be within SELECT statement
CASE语句不必仅在SELECT语句中。也可能在WHERE
,ORDER BY
中……
想象一下有人说I marry school and go to Peninsula
,为什么人们不知道I and Marry go to Peninsula school
?
您可以学习SQL以编写正确的查询,也可以尝试创建另一种查询语言,使您的查询具有自己的不同逻辑和语法。