Questão nº 79

Questão de Suporte · FGV DPGE-RJ 2014 (nº 79)

FGV2014Técnico Superior Especializado em SuporteSuporte
Gabarito: Bver comentário ↓

Considere uma tabela de banco de dados denominada Aluno cuja instância é mostrada a seguir.

nome
João 1
joao 2
joão 3
Joaõ4

No MS SQL Server, a execução do comando SQL

```sql
Select nome
From aluno
where nome collate latin1_general_cs_ai
like 'joão%'
```
produz como resultado

Resposta comentada

Gabarito Alternativa B

O Collation no SQL Server define as regras para comparar e ordenar dados de texto, incluindo se a comparação deve diferenciar maiúsculas de minúsculas (Case Sensitive - CS) e se deve diferenciar caracteres acentuados de não acentuados (Accent Sensitive - AS ou Accent Insensitive - AI). No caso latin1_general_cs_ai, a comparação é Case Sensitive (diferencia 'J' de 'j') e Accent Insensitive (não diferencia 'a' de 'ã').

  • (A) Incorreta: Esta alternativa seria correta se a collation fosse latin1_general_cs_as (Case Sensitive, Accent Sensitive), pois 'joao' não seria considerado igual a 'joão'.
  • (B) Correta: A collation latin1_general_cs_ai significa que a comparação é Case Sensitive (diferencia 'J' de 'j') e Accent Insensitive (não diferencia 'a' de 'ã').
    • João 1: Começa com 'J' maiúsculo, enquanto o padrão 'joão%' começa com 'j' minúsculo. Devido a cs (Case Sensitive), não há correspondência.
    • joao 2: Começa com 'joao'. O padrão é 'joão%'. A comparação 'a' com 'ã' é considerada igual devido a ai (Accent Insensitive). Há correspondência.
    • joão 3: Começa com 'joão'. O padrão é 'joão%'. Há correspondência exata no prefixo.
    • Joaõ4: Começa com 'J' maiúsculo, enquanto o padrão 'joão%' começa com 'j' minúsculo. Devido a cs (Case Sensitive), não há correspondência.
      Portanto, apenas 'joao 2' e 'joão 3' são selecionados.
  • (C) Incorreta: Esta alternativa seria correta se a collation fosse latin1_general_ci_ai (Case Insensitive, Accent Insensitive), pois 'João' seria tratado como 'joão'. A armadilha aqui é ignorar o cs (Case Sensitive) da collation.
  • (D) Incorreta: Estas linhas não são selecionadas porque começam com 'J' maiúsculo, e a collation cs (Case Sensitive) exige que o 'j' inicial do padrão 'joão%' seja minúsculo.
  • (E) Incorreta: 'João 1' não é selecionado devido à sensibilidade a maiúsculas/minúsculas (cs).

Fonte: FGV DPGE-RJ 2014 Técnico Superior Especializado em Suporte (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho