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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Kike
26/10/2005 - 08:41 | Informe spam
Muchas gracias perfecto

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
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
>
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida