0
我試圖編寫一個查詢,該查詢具有可選的輸入參數。如果該參數留空,我必須從表中選擇每條記錄。如果該參數不是空的,我只能通過它提供的值進行過濾。我的想法是使用CASE
聲明,但由於某種原因,無論我放入@list
變量,我都會得到空結果集。任何更好的想法?在WHERE子句中使用不同場景的SQL語句
SELECT * FROM my_tables
WHERE column_one IN (
CASE
WHEN LEN(@list) > 0 THEN @list
ELSE (SELECT column_one FROM my_table) END
)
Case _expression_。 – jarlh
在WHERE和ON子句中使用AND/OR而不是CASE通常更好。 – jarlh
我有一個類似的問題。請檢查我在這裏得到的回覆https://stackoverflow.com/questions/25872970/where-clause-selecting-term-codes –