No SQL, o operador menor ou igual a (
<=
) compara duas expressões e retorna TRUE
se o operando esquerdo tiver valor menor ou igual ao operando direito; caso contrário, o resultado é FALSE
. Você pode usá-lo para determinar se um valor é menor ou igual a outro valor.
Exemplo
Aqui está um exemplo para demonstrar.
SELECT * FROM city
WHERE Population <= 455;
Resultado:
+------+--------------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+--------------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | | 3538 | Città del Vaticano | VAT | – | 455 | +------+--------------------+---------------+-------------+--------------+
Essa consulta retorna todas as cidades com população de 455 ou menos.
Inclusivo
O operador menor ou igual a inclui o valor especificado em sua avaliação. Vimos isso no exemplo anterior quando incluiu a cidade com uma população de 455, que era o valor exato que especificamos.
Se não quiséssemos que essa cidade fosse incluída, precisaríamos diminuir o valor:
SELECT * FROM city
WHERE Population <= 454;
Resultado:
+------+-------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | +------+-------------+---------------+-------------+--------------+
Ou podemos simplesmente usar o operador menor que (
<
) em vez de:SELECT * FROM city
WHERE Population < 455;
Resultado:
+------+-------------+---------------+-------------+--------------+ | ID | Name | CountryCode | District | Population | |------+-------------+---------------+-------------+--------------| | 2317 | West Island | CCK | West Island | 167 | | 2912 | Adamstown | PCN | – | 42 | | 3333 | Fakaofo | TKL | Fakaofo | 300 | +------+-------------+---------------+-------------+--------------+
O operador menor que não inclui o valor que você especifica.
Datas
Aqui está um exemplo para demonstrar o uso do operador menor ou igual a para comparar valores de data.
SELECT PetName, DOB
FROM Pets
WHERE DOB <= '2020-03-15';
Resultado:
+-----------+------------+ | PetName | DOB | |-----------+------------| | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | +-----------+------------+
Cordas
Você também pode usar o
<=
operador para comparar valores de string. Ao comparar com um valor de string, use aspas ao redor do literal de string. SELECT * FROM city
WHERE Name <= 'Ab';
Resultado:
+------+------------------------------+---------------+---------------------+--------------+ | ID | Name | CountryCode | District | Population | |------+------------------------------+---------------+---------------------+--------------| | 20 | ´s-Hertogenbosch | NLD | Noord-Brabant | 129170 | | 548 | Šumen | BGR | Varna | 94686 | | 670 | A Coruña (La Coruña) | ESP | Galicia | 243402 | | 698 | [San Cristóbal de] la Laguna | ESP | Canary Islands | 127945 | | 2450 | Šiauliai | LTU | Šiauliai | 146563 | | 3097 | Aachen | DEU | Nordrhein-Westfalen | 243825 | | 3318 | Aalborg | DNK | Nordjylland | 161161 | | 3479 | Šostka | UKR | Sumy | 90000 | | 3665 | Šahty | RUS | Rostov-na-Donu | 221800 | | 3736 | Štšolkovo | RUS | Moskova | 104900 | +------+------------------------------+---------------+---------------------+--------------+
Esta consulta retorna todas as cidades menores ou iguais a
Ab
. Basicamente, ele retorna todas as cidades que começam com letras menores que Ab
ou exatamente Ab
. Várias Condições
Se você tiver várias condições, poderá usar vários
<=
operadores. Assim:
SELECT * FROM city
WHERE Name <= 'Ab' AND Population <= 100000;
Resultado:
+------+--------+---------------+------------+--------------+ | ID | Name | CountryCode | District | Population | |------+--------+---------------+------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+--------+---------------+------------+--------------+
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
. Além disso, ele 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 <= 'Ab'
AND Population <= 100000
OR District = 'Canary Islands';
Resultado:
+------+------------------------------+---------------+----------------+--------------+ | ID | Name | CountryCode | District | Population | |------+------------------------------+---------------+----------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 660 | Las Palmas de Gran Canaria | ESP | Canary Islands | 354757 | | 672 | Santa Cruz de Tenerife | ESP | Canary Islands | 213050 | | 698 | [San Cristóbal de] la Laguna | ESP | Canary Islands | 127945 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+------------------------------+---------------+----------------+--------------+
Nesta consulta, não forneci parênteses e, portanto, o
AND
operador foi avaliado antes do OR
operador. Portanto, obtivemos linhas que satisfizeram
Name <= 'Ab' AND Population <= 100000
ou District = 'Canary Islands'
. Podemos dizer apenas olhando para isso que todas as cidades das Ilhas Canárias serão devolvidas, além de quaisquer cidades que satisfaçam os primeiros critérios. Isso é como fazer o seguinte:
SELECT * FROM city
WHERE (Name <= 'Ab'
AND Population <= 100000)
OR District = 'Canary Islands';
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 <= 'Ab'
AND (Population <= 100000
OR District = 'Canary Islands');
Resultado:
+------+------------------------------+---------------+----------------+--------------+ | ID | Name | CountryCode | District | Population | |------+------------------------------+---------------+----------------+--------------| | 548 | Šumen | BGR | Varna | 94686 | | 698 | [San Cristóbal de] la Laguna | ESP | Canary Islands | 127945 | | 3479 | Šostka | UKR | Sumy | 90000 | +------+------------------------------+---------------+----------------+--------------+
Desta vez, obtivemos apenas as cidades que satisfizeram tanto
Population <= 100000 OR District = 'Canary Islands'
e Name <= 'Ab'
. 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 | |-----------+------------| | Fluffy | 2020-11-20 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | +-----------+------------+