1

地域の列と地区の列がある数式があります (地域は地区で構成されています)。数式には、特定の地域を全体として除外するためのコードがいくつかあります。しかし、すべてではなく、一部の地域からいくつかの地区を除外するだけでよい場合もあります。コードの 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')
4

3 に答える 3

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'
  );

または、次を使用できます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'
)

デモで SQL Fiddle を参照してください

于 2013-01-18T20:04:21.430 に答える
1

次のようなものはどうですか:

SELECT ID, Date, Class, Location, Training Number
FROM Table 1 INNER JOIN Table 2 ON Training Number     
WHERE (Region <> '100') AND -- Region cannot be 100
      (Region <> '76') AND  -- Region cannot be 76
      (Region <> '88' OR District <> '04') -- Region cannot be 88 if District is 04
于 2013-01-18T20:06:14.177 に答える
0

これを行うだけです:

where Region not in ('100', '76', '88') and district <> '04'

これを使用する必要はありませんlike

于 2013-01-18T20:04:16.960 に答える