簡體   English   中英

排除基於多個變量的記錄

[英]Excluding records based on multiple variables

SQL noob在這里。 我正在使用MS Access查詢路燈數據表,以排除特定大小的光,並且僅在燈具類型是“眼鏡蛇”的變體的情況下。 有誰願意對我可能做錯的事情給我一些指導?

我可以生產需要排除的燈:

SELECT * 
FROM Lighting 
WHERE Lighting.TYPE_FIXTURE LIKE '*cobra*' 
AND Lighting.SIZ < '16'

很簡單。 我認為這很容易進行一些調整,以排除它們而不是產生它們。

SELECT * 
FROM Lighting
WHERE Lighting.TYPE_FIXTURE NOT IN ('*Cobra*') 
AND Lighting.SIZ NOT IN ('10', '15')

此代碼排除了我需要排除的燈,但排除了其他所有類型的100或150w的燈。 為了我的一生,我想不出如何排除150w以下的眼鏡蛇燈。

通過廣泛的互聯網研究,我嘗試使用IIF表達式生成一個臨時列,該列的值為0或1,具體取決於是否需要排除它,

SELECT *
    ,IIf(Lighting.TYPE_FIXTURE LIKE "*cobra*" AND Lighting.SIZ < 15, 0, 1) AS IncludeFlag
INTO #MyTempTable
FROM Lighting

SELECT *
FROM #MyTempTable
WHERE IncludeFlag = 1

但是我唯一的結果是一條錯誤消息,我不知道該如何解決。 我已經花了整整一天時間在這個查詢上,而且我開始拔頭發了!!

嘗試這個...

SELECT * 
FROM Lighting 
WHERE (Lighting.TYPE_FIXTURE NOT LIKE '*cobra*' 
AND Lighting.SIZ < '16')

從TRUE和TRUE轉換為NOT(TRUE和TRUE)涉及將NOT分布在方括號內,並將AND切換為OR。

以下內容應為您提供所需的結果:

SELECT *
FROM Lighting
WHERE Lighting.TYPE_FIXTURE Not Like '*cobra*' OR Lighting.SIZ>='16';

暫無
暫無

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

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