在SQL中组合2个不相似的语句

use*_*651 1 sql

我有一个公式,其中我有一个区域列和一个区域列(一个区域由区域组成),在公式中我有一些代码片段来排除某些区域作为一个整体.但有些我只想从某些地区排除一些地区,但不是全部.代码的where部分如下所示:在代码中我想要排除区域100和区域76的所有区域,但是对于区域88,我只想排除区域04,但是当我输入这样的代码时,它会排除所有88 .(此代码中没有GROUP BY)

SELECT ID, Date, Class, Location, Training Number
FROM Table 1 INNER JOIN Table 2 ON Training Number     
WHERE (Region NOT LIKE '100') AND 
      (Region NOT LIKE '76') AND 
      (Region NOT LIKE '88') AND 
      (District NOT LIKE '04')
Run Code Online (Sandbox Code Playgroud)

Tar*_*ryn 5

我不确定你为什么使用LIKE运算符,你应该可以使用:

SELECT ID, Date, Class, Location, Training Number
FROM Table 1 
INNER JOIN Table 2 
  ON Training Number     
WHERE Region <> '100' 
  AND Region <> '76'
  AND 
  (
    Region <> '88' 
    OR District <> '04'
  );
Run Code Online (Sandbox Code Playgroud)

或者您可以使用NOT IN:

SELECT ID, Date, Class, Location, Training Number
FROM Table 1 
INNER JOIN Table 2 
  ON Training Number     
WHERE 
(
  Region NOT IN ('100', '76')
)
AND 
(
  Region <> '88' 
  OR District <> '04'
)
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo