Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — INSTITUTO AOCP 2024

Banco de DadosConsultas e Comandos em SQL
Código
qa630607
Banca
INSTITUTO AOCP
Órgão
DPE MS
Ano
2024
Cargo
Ana Def ( )
Tendo em vista a Linguagem de Consulta Estruturada (SQL), qual função numérica, passando uma coluna como parâmetro, retorna -1 se o valor da coluna de uma tabela for negativo, retorna 1 se o valor for positivo e retorna 0 se o valor for igual a 0?
  1. ASIGN()
  2. BSQRT()
  3. CCEIL()
  4. DFLOOR()
  5. ESUM()
Revelar gabarito e comentário

GabaritoA — SIGN()

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Funções numéricas em SQL: SIGN() e o sinal de um valor

Gabarito: letra A. A função SIGN() é a única que, ao receber uma coluna numérica como parâmetro, retorna -1 para valores negativos, 1 para valores positivos e 0 para valor igual a zero — exatamente o comportamento descrito no enunciado. As demais alternativas (SQRT, CEIL, FLOOR, SUM) executam outras operações matemáticas, como veremos a seguir.

A linguagem SQL oferece um conjunto de funções numéricas que operam sobre valores individuais ou sobre colunas inteiras. A função SIGN() é uma função escalar (ou de linha) que devolve o sinal do número passado como argumento. Em termos matemáticos, ela implementa a função sinal, definida como:

  • SIGN(x) = -1 se x < 0;

  • SIGN(x) = 0 se x = 0;

  • SIGN(x) = 1 se x > 0.

Essa função é útil, por exemplo, para classificar rapidamente valores em categorias (negativo, nulo, positivo) sem precisar de uma cláusula CASE.

As outras funções listadas pertencem a categorias diferentes:

  • SQRT() calcula a raiz quadrada de um número não negativo.

  • CEIL() e FLOOR() arredondam um número para o inteiro imediatamente superior ou inferior, respectivamente.

  • SUM() é uma função de agregação que soma os valores de uma coluna, retornando NULL se a coluna estiver vazia.

A pegadinha da banca está em confundir a função de sinal com funções de arredondamento ou com a função de agregação SUM. O candidato que não conhece SIGN() pode tentar associar o comportamento descrito a CEIL ou FLOOR, mas essas funções não retornam -1, 0 ou 1; elas retornam o próprio número arredondado. Já SUM soma valores e não tem relação com o sinal individual de cada registro.

Para fixar: a função SIGN() é a resposta direta para perguntas sobre o sinal de um número em SQL. Ela é amplamente suportada pelos principais SGBDs (Oracle, MySQL, PostgreSQL, SQL Server), com a mesma semântica.

1SIGN()
valor negativo → -1
valor zero → 0
valor positivo → 1
2SQRT()
raiz quadrada
3CEIL()
arredonda para cima
4FLOOR()
arredonda para baixo
5SUM()
agregação (soma)
Funções numéricas SQL
LEVELsoulevel.com.br
Funções numéricas SQL: SIGN() (valor negativo → -1, valor zero → 0, valor positivo → 1); SQRT() (raiz quadrada); CEIL() (arredonda para cima); FLOOR() (arredonda para baixo); SUM() (agregação (soma))

Alternativa A — ✅ Correta ⟵ GABARITO

A função SIGN() retorna exatamente o que o enunciado descreve: -1 para valores negativos, 1 para valores positivos e 0 para valor igual a zero. É a implementação SQL da função matemática sinal. Exemplo: SELECT SIGN(-5) retorna -1; SELECT SIGN(0) retorna 0; SELECT SIGN(7) retorna 1.

Alternativa B — ❌ Incorreta

SQRT() calcula a raiz quadrada de um número. Ela não tem relação com o sinal do valor: SQRT(9) retorna 3, SQRT(0) retorna 0, e para números negativos retorna erro (ou NULL, dependendo do SGBD). Não retorna -1, 0 ou 1 conforme o sinal.

Alternativa C — ❌ Incorreta

CEIL() arredonda um número para o menor inteiro maior ou igual ao valor. Por exemplo, CEIL(2.3) retorna 3, CEIL(-2.3) retorna -2. Não retorna -1, 0 ou 1 com base no sinal; retorna o próprio número arredondado.

Alternativa D — ❌ Incorreta

FLOOR() arredonda um número para o maior inteiro menor ou igual ao valor. Por exemplo, FLOOR(2.7) retorna 2, FLOOR(-2.7) retorna -3. Assim como CEIL, não tem relação com o sinal do valor.

Alternativa E — ❌ Incorreta

SUM() é uma função de agregação que soma todos os valores de uma coluna. Ela retorna a soma total, não o sinal de cada valor. Em uma tabela vazia, retorna NULL. Não se aplica ao comportamento descrito.

Gabarito: letra A

Link permanente: /questoes/qa630607