Considerando as tabelas T1 e T2, anteriormente apresentadas,...
delete from T2 where P not in (select P from T2)
O número de linhas deletadas da tabela T2 pela execução desse comando é:
Comentários
Veja os comentários dos nossos alunos
Cai na pegadinha da banca kkj
Nossa, parece mais um teste de atenção do que do SELECT em si. Basta obervar que não vai deletar porque ele está colocando o not in na própria T2. Que banca meus amigos, que banca...
Alternativa A ) 0
delete from T2 where P not in (select P from T2)
leia-se: "apague todas as linhas que não estão em T2"
O comando visa excluir todas as linhas que não estão na subconsulta [2, 3, 8, NULL].
Contudo, a subconsulta traz todos os registros da tabela, e portanto nenhuma linha é deletada
Gabarito (A)
O problema é que como tem uma comparação de NULL com NULL, o retorno dessa lógica é UNKNOWN e todo o fluxo seguinte não é processado! Independente se fosse "delete from T2 where P in (select P from T2)".
Fonte: https://www.w3schools.com/sql/sql_null_values.asp
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo
