在数据库“天气”上执行 SQL 查询时出错:“(”附近:语法错误

Posted

技术标签:

【中文标题】在数据库“天气”上执行 SQL 查询时出错:“(”附近:语法错误【英文标题】:Error while executing SQL query on database 'WEATHER': near "(": syntax error 【发布时间】:2020-11-23 16:52:28 【问题描述】:

我在 sql 上有这个任务,我必须根据表中行之间的差异从我的数据库中的表中选择一些特定的行,但是在数据库“天气”上执行 SQL 查询时我不断收到错误:靠近“( “:语法错误..请问我做错了什么,任何帮助将不胜感激。

SELECT
    *
    ,LAG(TempHighF,1,0) OVER(ORDER BY Date) AS previousTempHigh
FROM
    weatherdata
WHERE
    TempHighF - previousTempHigh >= 10;

【问题讨论】:

我有版本 3.30.0 @forpas 检查我的答案。 【参考方案1】:

您不能使用列previousTempHigh,它实际上是WHERE 子句中的别名窗口函数。 使用子查询:

SELECT *
FROM (
  SELECT *, LAG(TempHighF,1,0) OVER(ORDER BY Date) AS previousTempHigh
  FROM weatherdata
)  
WHERE TempHighF - previousTempHigh >= 10;

查看简化的demo。

【讨论】:

以上是关于在数据库“天气”上执行 SQL 查询时出错:“(”附近:语法错误的主要内容,如果未能解决你的问题,请参考以下文章

用perl查询天气

在 SQL Server 2008 R2 中重命名数据库时出错

通过 JPA 标准查询从 SQL 视图获取列表时出错

从 ms sql 导出以访问时出错

在 SQL Server CE 中解析查询时出错

在 SQL SERVER 上使用 ODBC 连接执行 SSIS 包时出错