簡體   English   中英

SQL Server:與UNION ALL和兩個Selects有關的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM