2
respostas

Qual a diferença destas duas sintaxes?

select distinct [bairro], [cidade] = 'rio de janeiro' from [tabela de clientes]

SELECT DISTINCT BAIRRO FROM [TABELA DE CLIENTES] WHERE CIDADE = 'Rio de Janeiro'

Uma me mostra 7 valores, outra 11. Mas mesmo a que mostra 11, não repete os bairros. Foi a sintaxe que pensei antes de ver o código do professor.

Não entendi muito bem porque deu diferença.

2 respostas

Olá Tiago, tudo bem?

A diferença é que no primeiro Select:

SELECT DISTINCT [bairro], [cidade] = 'rio de janeiro' 
FROM [tabela de clientes]

Está buscando todos os bairros distintos da tabela de clientes, juntamente com a cidade, se você analisar o resultado desta query, será retornado todos os bairros e no campo cidade está recebendo o valor rio de Janeiro diretamente no Select, o valor não está vindo do banco:

Select com distinct criando um novo campo cidade

Agora se for feito um Select na Tabela de clientes, você irá perceber que alguns bairros fazem parte de São Paulo e não do Rio de Janeiro, e até mesmo a escrita está diferente:

Select normal na tabela de clientes

Já o segundo Select:

SELECT DISTINCT BAIRRO FROM [TABELA DE CLIENTES]
WHERE CIDADE = 'Rio de Janeiro';

Está buscando todos os bairros distintos da tabela de clientes e que sejam apenas da cidade do Rio de Janeiro, se você analisar, nenhum bairro da cidade de São Paulo foi retornado, como no primeiro Select :

Select com distinct na tabela de clientes

Espero ter esclarecido a sua dúvida Tiago e bons estudos!

Esclareceu sim, obrigado pela ajuda!