Ordenar por una columna

25/10/2005 - 10:33 por Kike | Informe spam
Buenos dias grupo:

Quiero ordenar una consulta por un campo que me viene en una variable de
tipo varchar
ej:

declare @orden as varchar(50)
set @orden='id_curso'
select * from TBLInscripciones order by @orden

pero me pone lo siguiente:

"El elemento de SELECT que identifica el número ORDER BY 1 contiene una
variable como parte de la expresión que indica la posición de una columna.
Las variables sólo se admiten al ordenar por una expresión que se refiera a
un nombre de columna."

Saben alguna forma de solucionarlo sin que tenga que utilizar una
ExecuteSql.

Muchas gracias
 

Leer las respuestas

#1 Carlos Sacristán
25/10/2005 - 10:53 | Informe spam
Existe la opción de usar CASE:

SELECT * from tblInscripciones ORDER BY CASE @orden WHEN 'id_curso' THEN
idCurso WHEN 'colA' THEN colA END


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Kike" escribió en el mensaje
news:#
Buenos dias grupo:

Quiero ordenar una consulta por un campo que me viene en una variable de
tipo varchar
ej:

declare @orden as varchar(50)
set @orden='id_curso'
select * from TBLInscripciones order by @orden

pero me pone lo siguiente:

"El elemento de SELECT que identifica el número ORDER BY 1 contiene una
variable como parte de la expresión que indica la posición de una columna.
Las variables sólo se admiten al ordenar por una expresión que se refiera


a
un nombre de columna."

Saben alguna forma de solucionarlo sin que tenga que utilizar una
ExecuteSql.

Muchas gracias



Preguntas similares