Vamos a Pergunta!
Levando em consideração que as duas querys abaixo, retornam o mesmo valor, a primeira roda no Postgres, MySQL e SQL Server e a segunda no Oracle.
Qual o valor de retorno delas? (Não vale colar! Responda sem executar a query!)
--No Postgres, MySQL, SQL Server SELECT sum(x.a) FROM ( SELECT 10 AS a UNION SELECT 10 AS a ) x ; --No Oracle SELECT sum(x.a) FROM ( SELECT 10 AS a FROM dual UNION SELECT 10 AS a FROM dual ) x ;
Opções:
a)20
b)40
c)10
d)0
e)NULL
Resposta: Letra c = 10, já que o UNION simples faz um DISTINCT antes, para o somatório ficar igual a opção a = 20, isto é somar mesmo sendo com linhas iguais, seria necessário substituir UNION por UNION ALL.
ResponderExcluir