Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Consulta ORDER BY

Estas en el tema de Consulta ORDER BY en el foro de SQL Server en Foros del Web. Saludos colegas, tengo una pequeña consulta a ver si alguno me puede ayudar a aclarar la situación.. Deseo saber si es posible en SQL Server ...
  #1 (permalink)  
Antiguo 08/09/2009, 16:35
 
Fecha de Ingreso: septiembre-2009
Mensajes: 31
Antigüedad: 14 años, 7 meses
Puntos: 0
Consulta ORDER BY

Saludos colegas, tengo una pequeña consulta a ver si alguno me puede ayudar a aclarar la situación..

Deseo saber si es posible en SQL Server 2005 enviar una variable al ORDER BY


ORDER BY NAME ASC

--------------

DECLARE [arroba]columna VARCHAR(30)
DECLARE [arroba]orden VARCHAR(5)

SET [arroba]columna = 'NAME'
SET [arroba]orden = 'ASC'

ORDER BY [arroba]columna +' '+[arroba]orden


*La sentencia original es la primera, pero necesito saber si es posible hacer algo para que la segunda me funcione, la línea no me da error, pero tampoco lo ordena..

Lo necesito para ordenar la información de un grid pero utilizo un procedimiento almacenado y por ende no le envío la consulta desde el sistema.

Agradezco comentarios.

NOTA: Disculpen mi [arroba] pero esta "belleza" de sistema cree que estoy posteando un URL y no me deja poner la variable bien
  #2 (permalink)  
Antiguo 08/09/2009, 20:53
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Consulta ORDER BY

Tendrias que usar sql dinamico.
Código sql:
Ver original
  1. ALTER PROCEDURE TuProcedimiento
  2. AS
  3. BEGIN
  4. EXEC('select * from tutabla order by '+@columna+' '+@orden)
  5. END
Suerte!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 08/09/2009, 21:20
 
Fecha de Ingreso: septiembre-2009
Mensajes: 31
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Consulta ORDER BY

Hola, gracias por la respuesta.... estuve viendo tu comentario... mi entorno es el siguiente... tengo al rededor de 350 procedimientos almacenados, de ellos calculo unos 100 sean de obtener datos... la idea es que cada uno de ellos pueda ordenarse por medio de variables.. viendo entonces tu idea sería crear un nuevo procedimiento para cada uno de esos 100 y llamarlo para que ejecute mis SP? considerando que esos 100 SP reciben N parámetros sería también tomarlos en cuenta supongo...

Comprendo si esa es la manera pero me parece poco eficiente para mi situación, al menos desde SQL tendré que descartar y buscar una manera de ordenarlo desde el sistema...

Saludos!
  #4 (permalink)  
Antiguo 09/09/2009, 05:20
Avatar de Valery-Net  
Fecha de Ingreso: agosto-2008
Mensajes: 694
Antigüedad: 15 años, 8 meses
Puntos: 12
Respuesta: Consulta ORDER BY

Yo uso el siguientr procedimiento almacenado

Cita:
ALTER PROCEDURE [dbo].[ProcExec] @cTabla nvarChar(200), @cCampos nVarchar(800)='*', @Condi nchar(1000) = ''
As
Begin
SET NOCOUNT ON
Declare @cSQL nVarchar(2000)
If LEN(@Condi) = 0
Set @cSQL = N'Select ' + @cCampos + N' From ' + @cTabla
Else
Set @cSQL = N'Select ' + @cCampos + N' From ' + @cTabla + N' Where ' + @Condi
EXEC sp_executesql @cSQL
End
  #5 (permalink)  
Antiguo 09/09/2009, 08:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Consulta ORDER BY

Solo como comentario, lean sobre los PRO y CONTRAS de utilizar query dinamico.

Valery, Excelente, no utilizar EXEC() y si SP_EXECUTESQL.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:51.