【发布时间】:2014-12-27 14:30:46
【问题描述】:
这是我的查询,但出现错误
错误
消息 156,第 15 级,状态 1,第 6 行
关键字“order”附近的语法不正确。消息 156,第 15 级,状态 1,第 13 行
关键字“order”附近的语法不正确。消息 156,第 15 级,状态 1,第 20 行
关键字“order”附近的语法不正确。
查询
(SELECT TOP 20 cl_RooSiteId,
cl_CrawlOrgUrl
FROM tblCrawlUrls
WHERE Sysutcdatetime() > Dateadd(MINUTE, 50000, cl_LastCrawlDate)
AND cl_DuplicateUrl_ByCanonical = 0
AND cl_RooSiteId = 1
ORDER BY cl_LastCrawlDate ASC)
UNION ALL
(SELECT TOP 200 cl_RooSiteId,
cl_CrawlOrgUrl
FROM tblCrawlUrls
WHERE Sysutcdatetime() > Dateadd(MINUTE, 50000, cl_LastCrawlDate)
AND cl_DuplicateUrl_ByCanonical = 0
AND cl_RooSiteId = 2
ORDER BY cl_LastCrawlDate ASC)
UNION ALL
(SELECT TOP 50 cl_RooSiteId,
cl_CrawlOrgUrl
FROM tblCrawlUrls
WHERE Sysutcdatetime() > Dateadd(MINUTE, 50000, cl_LastCrawlDate)
AND cl_DuplicateUrl_ByCanonical = 0
AND cl_RooSiteId = 3
ORDER BY cl_LastCrawlDate ASC)
那么应该如何编写它应该可以工作呢?
【问题讨论】:
-
你不能在 UNION (ALL) 之间下订单,创建一个顶级 SELECT 然后在那里下订单。
-
@agentpx 那么我怎样才能实现我想要实现的目标呢?我也尝试将它们封装在上层选择中,但它也失败了
-
ty 我看到 MSSQL 无法满足我的要求,因此最好将每个查询作为表返回,然后在我的代码后面处理。每个查询都需要单独排序,而不是返回结果。
标签: sql sql-server tsql union sql-server-2014