Clausulas en variables

02/12/2004 - 22:29 por Juan Jaimes | Informe spam
Tengo un procedimiento que selecciona 3 campos de una tabla, ahora tengo la
nececidad de ordenar dicho SELECT dependiendo de un Parámetro que se envíe a
este procedimiento.
Cómo puedo realizar esto. Intente con

DECLARE @orden INT

SELECT descrip, nrocasos, calles
FROM casos
ORDER BY CASE WHEN @orden = 1 THEN descrip ASC ELSE nrocasos ASC

pero no me dá resultado

Preguntas similare

Leer las respuestas

#1 MAXI
02/12/2004 - 23:49 | Informe spam
Hola, mira, esto lo deberias resolver con Sql-Dinamico, pero si haces eso el
SP perdera todo su potencial :(

Quizas puedas tener un orden por default y luego en la capa de presentacion
hacer los cambios que necesites :)




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messenger:

"Juan Jaimes" <Juan escribió en el mensaje
news:
Tengo un procedimiento que selecciona 3 campos de una tabla, ahora tengo
la
nececidad de ordenar dicho SELECT dependiendo de un Parámetro que se envíe
a
este procedimiento.
Cómo puedo realizar esto. Intente con

DECLARE @orden INT

SELECT descrip, nrocasos, calles
FROM casos
ORDER BY CASE WHEN @orden = 1 THEN descrip ASC ELSE nrocasos ASC

pero no me dá resultado
Respuesta Responder a este mensaje
#2 Javier Loria
03/12/2004 - 00:05 | Informe spam
Hola:
Si la tabla es pequena puedes hacer algo como:
SELECT descrip, nrocasos, calles
FROM casos
ORDER BY
CASE WHEN @orden = 1
THEN descrip
WHEN @orden = 2
THEN nrocasos
WHEN @orden = 2
THEN calles
END ASC
Si la tabla es grande no se usaran los indices. Asumo que todos las
columnas son del mismo tipo, es posible que se requieran conversiones si no
lo son.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Juan Jaimes" <Juan wrote in message
news:
Tengo un procedimiento que selecciona 3 campos de una tabla, ahora tengo


la
nececidad de ordenar dicho SELECT dependiendo de un Parámetro que se envíe


a
este procedimiento.
Cómo puedo realizar esto. Intente con

DECLARE @orden INT

SELECT descrip, nrocasos, calles
FROM casos
ORDER BY CASE WHEN @orden = 1 THEN descrip ASC ELSE nrocasos ASC

pero no me dá resultado
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida