DECLARE @TABELA TABLE(ID INT)
INSERT INTO @TABELA SELECT 1
UNION SELECT 2
UNION SELECT 3
UNION SELECT 4
--ANY retorna verdadeiro comparando por QUALQUER valor de um Conjunto
IF 2 < ANY(SELECT ID FROM @TABELA)
BEGIN
PRINT '2 É MENOR QUE QUALQUER VALOR DA TABELA'
END
--SOME retorna verdadeiro comparando por ALGUM valor de um Conjunto
IF 2 < SOME(SELECT ID FROM @TABELA)
BEGIN
PRINT '2 É MENOR QUE ALGUM VALOR DA TABELA'
END
--ALL retorna verdadeiro comparando por TODOS valores de um Conjunto
IF 0 < ALL(SELECT ID FROM @TABELA)
BEGIN
PRINT '0 É MENOR QUE TODOS OS VALORES DA TABELA'
END
--CURIOSIDADES: EQUIVALENCIA ANY E IN
--Trazer dados de @TABELA que seja IGUAL a QUALQUER valor do Conjunto
SELECT *
FROM @TABELA
WHERE ID = ANY(SELECT 1 UNION SELECT 2 UNION SELECT 5)
--Trazer dados de @TABELA que seja valores CONTIDOS num Conjunto
SELECT *
FROM @TABELA
WHERE ID IN(SELECT 1 UNION SELECT 2 UNION SELECT 5)
/*
Resultado em ambos os casos
ID
-----------
1
2
*/
--CURIOSIDADES: EQUIVALENCIA ALL e NOT IN
--Trazer dados de @TABELA que seja diferente de TODOS valores do Conjunto
SELECT *
FROM @TABELA
WHERE ID <> ALL(SELECT 1 UNION SELECT 2 UNION SELECT 5)
--Trazer dados de @TABELA que seja valores NAO CONTIDOS em um Conjunto
SELECT *
FROM @TABELA
WHERE ID NOT IN (SELECT 1 UNION SELECT 2 UNION SELECT 5)
/*
Resultado em ambos os casos
ID
-----------
3
4
*/
sábado, 27 de julho de 2013
Brincando com os operadores de comparação ( ANY | SOME e ALL )
Vou apresentar desta vez operadores de comparação que muitos desconhecem, são eles: ( ANY |SOME e ALL )
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário