SQLでは、大なり演算子(>
)2つの式を比較し、TRUE
を返します 左のオペランドの値が右のオペランドよりも大きい場合。それ以外の場合は、FALSE
を返します 。
例
実例を示します。
SELECT * FROM city
WHERE Population > 9000000;
結果:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 206 | São Paulo | BRA | São Paulo | 9968485 | | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 2331 | Seoul | KOR | Seoul | 9981619 | | 2822 | Karachi | PAK | Sindh | 9269265 | +------+-----------------+---------------+--------------+--------------+
このクエリは、人口が900万人を超えるすべての都市を返します。
独占
大なり演算子は、指定された値を評価に含めません。
たとえば、次の例では、このデータベースによると、正確に9269265の人口を持つカラチは返されません。
SELECT * FROM city
WHERE Population > 9269265;
結果:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 206 | São Paulo | BRA | São Paulo | 9968485 | | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 2331 | Seoul | KOR | Seoul | 9981619 | +------+-----------------+---------------+--------------+--------------+
人口9269265の都市を含めるには、指定した値を減らす必要があります。
SELECT * FROM city
WHERE Population > 9269264;
結果:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 206 | São Paulo | BRA | São Paulo | 9968485 | | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 2331 | Seoul | KOR | Seoul | 9981619 | | 2822 | Karachi | PAK | Sindh | 9269265 | +------+-----------------+---------------+--------------+--------------+
それか、(>=
以上を使用できます )演算子。
SELECT * FROM city
WHERE Population >= 9269265;
結果:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 206 | São Paulo | BRA | São Paulo | 9968485 | | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 2331 | Seoul | KOR | Seoul | 9981619 | | 2822 | Karachi | PAK | Sindh | 9269265 | +------+-----------------+---------------+--------------+--------------+
日付
これは、より大きい演算子を使用して日付値を比較する方法を示す例です。
SELECT PetName, DOB
FROM Pets
WHERE DOB > '2020-01-01';
結果:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fluffy | 2020-11-20 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | +-----------+------------+
文字列
大なり演算子を使用して、文字列値を比較することもできます。文字列値と比較するときは、文字列を引用符で囲みます。
SELECT * FROM city
WHERE Name > 'Zukovski'
ORDER BY Name;
結果:
+------+----------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+----------+---------------+------------+--------------| | 2669 | Zumpango | MEX | México | 99781 | | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3145 | Zwickau | DEU | Saksi | 104146 | | 28 | Zwolle | NLD | Overijssel | 105819 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+----------+---------------+------------+--------------+
複数の条件
複数の条件がある場合は、複数のより大きい演算子を使用できます。
このように:
SELECT * FROM city
WHERE Name > 'Zukovski' AND Population > 200000;
結果:
+------+---------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+---------+---------------+------------+--------------| | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+---------+---------------+------------+--------------+
優先順位
結果をフィルタリングするときに、演算子を組み合わせて使用することもできます。
SQLには、さまざまな演算子タイプに割り当てる優先順位があることに注意してください。たとえば、AND
などの論理演算子の前に条件演算子を評価します。 およびOR
。また、AND
も評価します OR
の前の演算子 演算子。
括弧はすべての演算子よりも優先順位が高いため、括弧を使用して、各条件を評価する順序を指定できます。
次の例を考えてみましょう:
SELECT * FROM city
WHERE Name > 'Zukovski'
AND Population > 100000
OR District = 'Overijssel';
結果:
+------+----------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+----------+---------------+------------+--------------| | 15 | Enschede | NLD | Overijssel | 149544 | | 28 | Zwolle | NLD | Overijssel | 105819 | | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3145 | Zwickau | DEU | Saksi | 104146 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+----------+---------------+------------+--------------+
このクエリでは、かっこを指定しなかったため、AND
演算子はOR
の前に評価されました オペレーター。
したがって、Name > 'Zukovski' AND Population > 100000
のいずれかを満たす行が得られました。 またはDistrict = 'Overijssel'
。これを見るだけで、オーファーアイセル地区のすべての都市に加えて、最初の基準を満たすすべての都市が返還されることがわかります。
これは、次のようになります。
SELECT * FROM city
WHERE (Name > 'Zukovski'
AND Population > 100000)
OR District = 'Overijssel';
これにより、括弧なしの前のクエリと同じ結果が得られます。
しかし、括弧をOR
に移動するとどうなるか見てみましょう。 状態。
SELECT * FROM city
WHERE Name > 'Zukovski'
AND (Population > 100000
OR District = 'Overijssel');
結果:
+------+---------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+---------+---------------+------------+--------------| | 28 | Zwolle | NLD | Overijssel | 105819 | | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3145 | Zwickau | DEU | Saksi | 104146 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+---------+---------------+------------+--------------+
今回は、Population > 100000 OR District = 'Overijssel'
の両方を満たす都市のみを取得しました。 および Name > 'Overijssel'
。
これにより、前のクエリの2つではなく、Overijsselから1つの都市のみが返されました。
条件を否定する
NOT
を使用できます 大なり演算子によって提供される条件を否定する演算子。次に例を示します。
SELECT PetName, DOB
FROM Pets
WHERE NOT DOB > '2019-12-31';
結果:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | +-----------+------------+