簡體   English   中英

帶參數的案例表達式失敗

[英]Case expression with a parameter fails

如果Make不等於'0',我想只使用where條件。 這就是我嘗試過的。 這是存儲過程的片段。 查詢僅在Make不為0時有效。當它為'0'時失敗。

這不是空檢查。 @Make是一個varchar。 如何實現它要么是'0'要么是一個字符串,例如'mazda'。

select *
from In_Inventory
where
and Make = case 
when @Make != '0'
Then @Make
end

嘗試這樣的事情

SELECT
*
FROM In_Inventory
WHERE @Make = 0
OR Make = @Make 

您不能使用case表達式來返回語法元素(例如where子句),只返回值。 但是,您可以通過簡單in條件獲得相同的行為:

SELECT *
FROM   In_Inventory
WHERE  @Make IN ('0', Make)

試試這個,

SELECT
*
FROM In_Inventory
WHERE @Make = 0
OR Make = @Make

試試這樣,

SELECT *
FROM In_Inventory
WHERE (
        Make = 0
        OR Make = @Make
        )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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