3
類似的問題已經被問here語法錯誤使用where子句
情況下無論如何,我得到一個語法錯誤我想不通。
這是我的代碼:
declare @MyParameter integer
se @MyParameter = Set At Runtime (could be -1 or any value >=1)
SELECT manyfields FROM manyjoinedtables
where
case when @MyParameter> -1 then
(FIELD1 **=** @MyParameter AND ANOTHERFIELD = Value**)**
end -- note: in case @MyParameter = -1 i do not want to add where condition
反正Management Studio中強調紅色2個字符包圍**以上。
爲什麼?語法錯誤在哪裏?
謝謝,它的工作原理,所以在鏈接的帖子中接受的答案中的語法是錯誤的。 – LaBracca
不知道,它可能工作。儘管如此,如果你沒有在你的where子句中進行計算,那麼性能會更好,所以我肯定會遵循這個邏輯。如果這回答您的問題,請隨時將答案標記爲已接受。 –
@ user193655如果語法在某些RDBMS中具有布爾數據類型,則該語法的每個分支都是布爾型,並且整個case表達式的數據項將爲布爾型。但是SQL Server沒有。 –