0
我有6個輸入字段,其中2個是強制性的。其他4個字段是可選的,並且在表中不是空值。我必須將這6個值傳遞給遊標查詢。代碼1,代碼2,代碼3在表中是相同的字段名稱'X'。 如何將這些條件包含在where子句中?如果給出code1而其他則爲null,則過濾條件應該包括X = code1。同樣,如果給出code1和code2,則X = code1,code2。如果什麼都沒有給出,那麼X就是所有的值,而不是從查詢中消除的X過濾條件。如何在where語句中使用Case語句?
select p,q,r from a,b
where a.f1=b.f2
and a.X=code1 <<if only code1 is passed>>
and a.X in (code1,code2) <<if both code1 and code2 are passed>>
or
select p,q,r from a,b
where a.f1=b.f2
<<if no value is passed>>
請幫忙!
在'WHERE'子句中使用MySQL'CASE'沒有什麼特別的好處,它在其他語言中的工作方式並不相同。 – Havenard
添加一些示例表格數據和預期結果(以及格式化文本)。同時標記您正在使用的dbms。 – jarlh