Você receber uma mensagem de erro quando você executa uma consulta que contenha um alias que tem o mesmo nome como duas ou mais colunas na cláusula ORDER BY

ID do artigo: 890771 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Quando você tenta executar uma consulta no Microsoft SQL Server 2000, você receber a seguinte mensagem de erro:
Mensagem de servidor: 169, 15, do nível estado 3, linha 8
Uma coluna foi especificada mais de uma vez na ordem por lista. Colunas na ordem por lista devem ser exclusivas.
Esse problema ocorre quando as seguintes condições forem verdadeiras:
  • A consulta contém dois ou mais colunas que tenham o mesmo nome em ORDER BY cláusula.
  • A consulta contém um alias na cláusula SELECT que tem o mesmo nome como duas ou mais colunas na cláusula ORDER BY.
Por exemplo, quando você execute o seguinte script Transact-SQL, você recebe essa mensagem de erro:
USE Northwind
GO
SELECT TOP 1 customers.CustomerID as customerid,
  customers.CompanyName as companyname
 FROM customers INNER JOIN orders
  on customers.CustomerID = orders.CustomerID
 ORDER BY
  customers.CustomerID ASC,
  orders.CustomerID DESC
GO

Causa

Esse problema ocorre porque a lista de cláusula ORDER BY deve ser exclusiva. Quando um alias que tem o mesmo nome na cláusula SELECT é especificado, a lista de cláusula ORDER BY não é exclusiva.

Como Contornar

Para contornar esse problema, você deve fazer se o alias que você especificou na cláusula SELECT é exclusivo se você pretende incluir a coluna na lista de cláusula ORDER BY. Por exemplo, quando você executa o script do Transact-SQL a seguir, nenhuma mensagem de erro é retornada:
USE Northwind
GO
SELECT TOP 1 customers.CustomerID  as customerid1,
  customers.CompanyName as companyname
 FROM customers INNER JOIN orders
  on customers.CustomerID = orders.CustomerID
 ORDER BY
  customers.CustomerID ASC,
  orders.CustomerID DESC
 GO

Situação

Esse comportamento é por design.

Propriedades

ID do artigo: 890771 - Última revisão: sexta-feira, 2 de novembro de 2007 - Revisão: 1.5
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
Palavras-chave: 
kbmt kbquery kbinfo kbtshoot kbprb KB890771 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 890771

Submeter comentários