請幫我理解下面關鍵字'order'附近的語法錯誤。 SQL服務器
爲什麼
(select top 1 * from dbo.module order by [order])
拋出一個錯誤?
當
select top 1 * from dbo.module
和
select top 1 * from dbo.module order by [order]
都沒有?
請幫我理解下面關鍵字'order'附近的語法錯誤。 SQL服務器
爲什麼
(select top 1 * from dbo.module order by [order])
拋出一個錯誤?
當
select top 1 * from dbo.module
和
select top 1 * from dbo.module order by [order]
都沒有?
由於SQL Server執行語句,並且語句具有爲它們指定的確切語法。
SELECT語句必須以SELECT關鍵字開頭。 如果語句以括號開始,它是子查詢,並且不能在其中使用'排序依據'。
圍繞整個語句括括號不是一個好的語法/陳述。這工作原理:
(SELECT top 1 * FROM dbo.module) ORDER BY [order]
@你,我更傾向於理解括號中的錯誤。 –
您需要通過外部括號保持順序(從dbo.module中選擇頂部1 *)order by [order] – Yeou
order by應始終是您寫入查詢的最後一個語句。這就是爲什麼它應該在括號之外。 – Yeou