SQL-SQL错误[156] [S1000]:关键字'as'附近的语法不正确

时间:2019-02-25 09:20:44

标签: sql-server mssql-jdbc

以下是我的查询-

DELETE
FROM activity_details as ad, edit_details as ed
LEFT JOIN edit_details as ed
ON ed.details_id = ad.row_id
WHERE year(ad.activity_datetime)  = year(GETDATE())-10

我遇到错误SQL错误[156] [S1000]:关键字'as'附近的语法不正确。   SQL错误[156] [S1000]:关键字“ as”附近的语法不正确。

能帮我纠正语法吗

4 个答案:

答案 0 :(得分:3)

按如下所示进行更改。如果在删除语句中使用FROM,则需要使用DELETE ad FROM activity_details as ad LEFT JOIN edit_details as ed ON ed.details_id = ad.row_id WHERE year(ad.activity_datetime) = year(GETDATE())-10 名称删除。

delete

答案 1 :(得分:1)

DELETE ad FROM activity_details as ad LEFT JOIN edit_details as ed ON ed.details_id = ad.row_id WHERE year(ad.activity_datetime) = year(GETDATE())-10 之后添加别名

=xlAnd

答案 2 :(得分:1)

您需要在delete子句中使用别名,然后使用FROM。我还建议反对year(ad.activity_datetime)并使用SARGable查询:

DELETE ad
FROM activity_details ad
     LEFT JOIN edit_details ed ON ed.details_id = ad.row_id
WHERE ad.activity_datetime >= DATEADD(YEAR,DATEDIFF(YEAR, 0, GETDATE()-10),0)
  AND ad.activity_datetime < DATEADD(YEAR,DATEDIFF(YEAR, 0, GETDATE()-9),0);

答案 3 :(得分:0)

您需要从查询中删除别名。