0
我有一個表格,其中包含以下信息。SQLite查詢可能不處於狀態
AreaDescription AD
------------------
Processing1 BB
Geology BC
pilot BB
需要動態的方式找到,如果有一個在公元敵不過一組給定(「公元前」,「G」,「S」),它返回的所有記錄,否則只返回其在相匹配的那些給定組( 'BC', 'G', 'S')
select * from tblArea where AreaDescription like '%o%' and (AD in ('BC','G','S') or 1=1)
我試圖上述SQL,其含有
(在( 'BC' AD, 'G', 'S')或1 = 1)
表示如果AD在('BC','G','S')中具有值,則返回它們,否則按照1 = 1條件返回所有內容。
但是這不起作用,因爲我認爲它的工作原理。
這裏我得到的所有行不僅包含'BC',所以我猜OR狀態不正確嗎?
有沒有一種方法可以做到這一點?使用SWITCH?
SqlLite沒有任何程序語言。所以簡單地說,你不能用簡單的程序來完成它。你必須加入或結合兩個評估。但是你可以簡單地在你的代碼中編程。 – RMachnik
'1 = 1'總是如此,如果你用'OR'把它與另一個條件結合起來,那麼顯然其他條件結果根本就不重要。 – CBroe