FC ConcursosFC Concursos

Questão FC369483

No contexto da lógica de três estados, normalmente usada em expressões logicas que envolvem valores nulos, considere uma tabela relacional exemplo com colunas A, B, C, com apenas u

Linguagem SQL

FGV · 2024

No contexto da lógica de três estados, normalmente usada em expressões logicas que envolvem valores nulos, considere uma tabela relacional exemplo com colunas A, B, C, com apenas uma linha, cujos valores das colunas são, respectivamente, 10, 20 e null, além do comando SQL a seguir.

 

select

case when (not C is null or B = 15)

         then 1 else 0 end x1,

case when not (not C is null or B = 15)

         then 1 else 0 end y1,

case when (C = null or B <> null)

         then 1 else 0 end x2,

case when not (C = null or B <> null)

         then 1 else 0 end y2,

case when (C < A or C > A)

         then 1 else 0 end x3,

case when not (C < A or C > A)

         then 1 else 0 end y3

from exemplo

Assinale os valores do resultado da execução do comando acima, na ordem da colunas x1, y1, x2, y2, x3, y3.

  1. 0, 0, 0, 0, 0, 1
  2. 0, 1, 0, 0, 0, 0
  3. 0, 1, 0, 1, 0, 1
  4. 0, 1, 1, 0, 1, 0
  5. 0, 1, 1, 1, 0, 0
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

Contexto: A expressão usa a lógica de três valores (TRUE / FALSE / UNKNOWN) com NULL. Em SQL, comparações com NULL via \(=\) ou \(<>\) produzem UNKNOWN; já IS NULL e IS NOT NULL são testes booleanos definidos.

x1 = 0: not C is null equivale a C is not null. Como C é NULL, isso é FALSE; B = 15 também é FALSE. FALSE OR FALSE = FALSE → retorna 0.

y1 = 1: negação do parêntese anterior: NOT(FALSE) = TRUE → retorna 1.

x2 = 0 e y2 = 0: \(C = NULL\) e \(B <> NULL\) são ambos UNKNOWN; UNKNOWN OR UNKNOWN = UNKNOWN. CASE WHEN com condição UNKNOWN não entra no THEN, vai para ELSE 0. A negação NOT(UNKNOWN) continua UNKNOWN, logo também retorna 0.

x3 = 0 e y3 = 0: Comparações \(C < A\) e \(C > A\) com C = NULL são UNKNOWN; OR resulta UNKNOWN, e NOT(UNKNOWN) segue UNKNOWN. Ambos caem no ELSE 0.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo