为什么CASE语句应该在select语句内?

时间:2019-03-28 03:32:48

标签: sql

为什么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;

3 个答案:

答案 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语句中。也可能在WHEREORDER BY中……

想象一下有人说I marry school and go to Peninsula,为什么人们不知道I and Marry go to Peninsula school

您可以学习SQL以编写正确的查询,也可以尝试创建另一种查询语言,使您的查询具有自己的不同逻辑和语法。