← Questões de Banco de Dados

Banco de Dados · FGV · 2023

Questão comentada de Banco de Dados

Observe o script SQL a seguir. CREATE TABLE TB_PROC (ID_PROC int , NM_JUIZ VARCHAR2(50), PR_FASE VARCHAR2(50)); INSERT INTO TB_PROC (ID_PROC, NM_JUIZ, PR_FASE) VALUES (1, 'A', 'CONTESTACAO'); INSERT INTO TB_PROC (ID_PROC, NM_JUIZ, PR_FASE) VALUES (2, 'A', 'INSTRUCAO'); INSERT INTO TB_PROC (ID_PROC, NM_JUIZ, PR_FASE) VALUES (3, 'B', 'INSTRUCAO'); INSERT INTO TB_PROC (ID_PROC, NM_JUIZ, PR_FASE) VALUES (4, 'A', 'RECURSAL'); INSERT INTO TB_PROC (ID_PROC, NM_JUIZ, PR_FASE) VALUES (5, 'B', 'CONTESTACAO'); SELECT COUNT(*) FROM TB_PROC WHERE NM_JUIZ = 'B' AND PR_FASE <> 'RECURSAL'; O resultado da execução do script SQL apresentado é:

Gabarito: B

Nesta questao, o ponto central eh simples: o comando SELECT COUNT(*) conta quantas linhas atendem ao filtro do WHERE. Aqui, voce nao esta somando valores nem contando apenas uma coluna especifica, mas sim as linhas inteiras que passam pela condicao. O filtro traz duas exigencias ao mesmo tempo: NM_JUIZ = 'B' e PR_FASE <> 'RECURSAL'. O operador <> significa diferente de, entao entram apenas os registros do juiz B que nao estejam na fase recursal. Pelos dados inseridos, isso ocorre em duas linhas: o processo 3, com juiz B e fase INSTRUCAO, e o processo 5, com juiz B e fase CONTESTACAO. Como o processo 4 tem juiz A, ele nao entra, mesmo estando em RECURSAL. Por isso, o resultado eh 2. Em SQL, a banca gosta bastante de testar leitura atenta de filtros lógicos e interpretacao do operador de desigualdade, sem nenhuma magia escondida.

Continue treinando

Questões relacionadas