No SQL, o operador maior ou igual a (
>=
) compara duas expressões e retorna TRUE
se o operando esquerdo tiver valor maior ou igual ao operando direito; caso contrário, retorna FALSE
. Exemplo
Aqui está um exemplo para demonstrar.
SELECT * FROM city
WHERE Population >= 9269265
ORDER BY Population ASC;
Resultado:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 2822 | Karachi | PAK | Sindh | 9269265 | | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 206 | São Paulo | BRA | São Paulo | 9968485 | | 2331 | Seoul | KOR | Seoul | 9981619 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | +------+-----------------+---------------+--------------+--------------+
Esta consulta retorna todas as cidades que possuem uma população maior ou igual a 9269265.
Inclusivo
O operador maior ou igual a inclui o valor especificado em sua avaliação.
Por exemplo, a consulta anterior incluiu Karachi, que, de acordo com esse banco de dados, tem uma população de exatamente 9.269.265.
Se quiséssemos excluir cidades com essa população, precisaríamos aumentar o valor especificado:
SELECT * FROM city
WHERE Population >= 9269266
ORDER BY Population ASC;
Resultado:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 206 | São Paulo | BRA | São Paulo | 9968485 | | 2331 | Seoul | KOR | Seoul | 9981619 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | +------+-----------------+---------------+--------------+--------------+
Ou podemos simplesmente usar o maior que (
>
) operador em vez disso:SELECT * FROM city
WHERE Population > 9269265
ORDER BY Population ASC;
Resultado:
+------+-----------------+---------------+--------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-----------------+---------------+--------------+--------------| | 939 | Jakarta | IDN | Jakarta Raya | 9604900 | | 1890 | Shanghai | CHN | Shanghai | 9696300 | | 206 | São Paulo | BRA | São Paulo | 9968485 | | 2331 | Seoul | KOR | Seoul | 9981619 | | 1024 | Mumbai (Bombay) | IND | Maharashtra | 10500000 | +------+-----------------+---------------+--------------+--------------+
Datas
Aqui está um exemplo para demonstrar o uso do operador maior ou igual a para comparar valores de data.
SELECT PetName, DOB
FROM Pets
WHERE DOB >= '2020-03-15';
Resultado:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fluffy | 2020-11-20 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | +-----------+------------+
Cordas
Você também pode usar o operador maior ou igual a para comparar valores de string. Ao comparar com um valor de string, use aspas ao redor da string.
SELECT * FROM city
WHERE Name >= 'Zukovski'
ORDER BY Name;
Resultado:
+------+----------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+----------+---------------+------------+--------------| | 3756 | Zukovski | RUS | Moskova | 96500 | | 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 | +------+----------+---------------+------------+--------------+
Várias Condições
Se você tiver várias condições, poderá usar vários
>=
operadores. Assim:
SELECT * FROM city
WHERE Name >= 'Zukovski' AND Population >= 200000;
Resultado:
+------+---------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+---------+---------------+------------+--------------| | 2025 | Zunyi | CHN | Guizhou | 261862 | | 3245 | Zürich | CHE | Zürich | 336800 | | 3446 | Zytomyr | UKR | Zytomyr | 297000 | +------+---------+---------------+------------+--------------+
Precedência
Você também pode usar uma combinação de operadores ao filtrar os resultados.
Observe que o SQL tem uma ordem de precedência que atribui a diferentes tipos de operadores. Por exemplo, ele avalia qualquer operador condicional antes de qualquer operador lógico, como
AND
e OR
. Ele também avalia qualquer AND
operadores antes de qualquer OR
operadores. Os parênteses têm precedência mais alta do que todos os operadores e, portanto, você pode usar parênteses para especificar a ordem na qual cada condição deve ser avaliada.
Considere o seguinte exemplo:
SELECT * FROM city
WHERE Name >= 'Zukovski'
AND Population >= 100000
OR District = 'Overijssel';
Resultado:
+------+----------+---------------+------------+--------------+ | 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 | +------+----------+---------------+------------+--------------+
Nesta consulta, não forneci parênteses e, portanto, o
AND
operador foi avaliado antes do OR
operador. Portanto, obtivemos linhas que satisfizeram
Name >= 'Zukovski' AND Population >= 100000
ou District = 'Overijssel'
. Podemos dizer apenas olhando para isso que todas as cidades do distrito de Overijssel serão devolvidas, além de quaisquer cidades que satisfaçam o primeiro critério. Isso é como fazer o seguinte:
SELECT * FROM city
WHERE (Name >= 'Zukovski'
AND Population >= 100000)
OR District = 'Overijssel';
Isso nos daria o mesmo resultado da consulta anterior sem parênteses.
Mas veja o que acontece quando movemos os parênteses para o
OR
doença. SELECT * FROM city
WHERE Name >= 'Zukovski'
AND (Population >= 100000
OR District = 'Overijssel');
Resultado:
+------+---------+---------------+------------+--------------+ | 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 | +------+---------+---------------+------------+--------------+
Desta vez, obtivemos apenas as cidades que satisfizeram tanto
Population >= 100000 OR District = 'Overijssel'
e Name >= 'Overijssel'
. Isso resultou em apenas uma cidade de Overijssel sendo retornada, em oposição a duas na consulta anterior.
Negando a condição
Você pode usar o
NOT
operador para negar a condição fornecida pelo >=
operador. Aqui está um exemplo:SELECT PetName, DOB
FROM Pets
WHERE NOT DOB >= '2019-12-31';
Resultado:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | +-----------+------------+