![](/img/trans.png)
[英]SQL Union all throws SQL Syntax error but the two SELECTS are ok
[英]SQL Server: issue with UNION ALL and two Selects
我剛接觸SQL,可能在這里做錯了事,所以我希望有人可以幫助我。
我有一個較長的存儲過程,以以下內容結尾。 這里的想法是將兩個查詢合並為一個查詢,這樣我就不需要單獨的存儲過程,但仍然可以將結果作為一個國家( selCountry
)進行選擇,而另一個按日期( selDate
)進行選擇。
當我嘗試以這種方式保存它時,出現錯誤:“ Incorrect syntax near the keyword 'UNION'
。當我在單獨的過程中運行它們時,一切正常。
-- create final output
SELECT CONVERT(DATETIME, dDay) AS dDay,
CONVERT(VARCHAR(11), dDay, 106) AS dLong,
CONVERT(VARCHAR(10), dDay, 126) AS dShort,
countries,
regions,
mode,
dName,
dDesc
FROM @tempFix
WHERE countries LIKE '%'+@selCountry+'%'
OR regions LIKE '%'+@selCountry+'%'
ORDER BY dDay
UNION ALL
SELECT CONVERT(DATETIME, dDay) AS dDay,
CONVERT(VARCHAR(11), dDay, 106) AS dLong,
CONVERT(VARCHAR(10), dDay, 126) AS dShort,
countries,
regions,
mode,
dName,
dDesc
FROM @tempFix
WHERE DAY(dDay) = DAY(@selDate)
AND MONTH(dDay) = MONTH(@selDate)
FOR XML PATH('dDays'), ELEMENTS, TYPE, ROOT('root')
邁克,在此先感謝您的幫助。
請刪除ORDER BY並將其添加到最后。 您不能將ORDER BY放在UNION / UNION ALL之前。
這里是有關此語法的更多信息。
您必須在UNION
的最后一個查詢之后才能包含ORDER BY
。
您只能在查詢中所有設置操作的末尾包含ORDER BY子句
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.