Questão nº 79
Questão de Suporte · FGV DPGE-RJ 2014 (nº 79)
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
- Anome
joão 3 - Bnome
joao 2
joão 3 (alternativa correta) - Cnome
João 1
joao 2
joão 3
Joaõ4 - Dnome
João 1
Joaõ4 - Enome
João 1
joão 3
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_aisignifica 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 acs(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 aai(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 acs(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 ocs(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.