"order by..." como parám de un SP

24/11/2003 - 21:51 por Hernán Castelo | Informe spam
hola
quiero hacer un StoredProc
con un parámetro para indicar el ordenamiento
por ej. "nombre, codigo, ..." los campos del order by

intenté esto pero no me funciona...

declare @pp char(40)
set @pp= "es_codigo"
exec sp_executesql
N'select * select es_codigo from especialidad order by @pp',
N'@pp char(40)',
N'es_nombre, es_codigo'

qué puedo hacer ?!

gracias
atte,
Hernán Castelo
UTN - Buenos Aires
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .

"Antes de poner caco-citas al final de los mensajes, pensemos un poco"
(de El chamán de Calidelphia,
opus póstuma de Kânr Djkmilÿa)

Preguntas similare

Leer las respuestas

#1 Accotto Maximiliano D.
24/11/2003 - 22:07 | Informe spam
Hola Hernan!! haber si esto es lo que buscas?

declare @pp char(40)
set @pp= 'id'

DECLARE @SQLString NVARCHAR(500)

SET @SQLString N'SELECT * FROM PART order by ' + @pp

EXECUTE sp_executesql @SQLString


un saludo enorme
Maximiliano Damian Accotto
"Hernán Castelo" escribió en el mensaje
news:
hola
quiero hacer un StoredProc
con un parámetro para indicar el ordenamiento
por ej. "nombre, codigo, ..." los campos del order by

intenté esto pero no me funciona...

declare @pp char(40)
set @pp= "es_codigo"
exec sp_executesql
N'select * select es_codigo from especialidad order by @pp',
N'@pp char(40)',
N'es_nombre, es_codigo'

qué puedo hacer ?!

gracias
atte,
Hernán Castelo
UTN - Buenos Aires
. . . . . . . . . . . . . . . . . . . . . . . . .


.
. . . .

"Antes de poner caco-citas al final de los mensajes, pensemos un poco"
(de El chamán de Calidelphia,
opus póstuma de Kânr Djkmilÿa)


Respuesta Responder a este mensaje
#2 Development
24/11/2003 - 22:13 | Informe spam
Esta es la sintaxis que debarias de usar


CREATE PROCEDURE sp_SelectCodigosBy @orderby varchar(4)l AS


DECLARE @Statement NVARCHAR(300)

set @Statement = N'Select * From Productos order by'+@orderby

EXEC sp_executesql @Statement

IF @@ROWCOUNT = 0
print 'ErrorLog Warning > Nada Fue Seleccionado'
GO



Para ejecutar el stored procedure == exec sp_SelectCodigosBy
'Productid,Productname'

Reemplaza los field y el nombre de la tabla de acuerdo a tus necesidades!

Alv




"Hernán Castelo" wrote in message
news:
hola
quiero hacer un StoredProc
con un parámetro para indicar el ordenamiento
por ej. "nombre, codigo, ..." los campos del order by

intenté esto pero no me funciona...

declare @pp char(40)
set @pp= "es_codigo"
exec sp_executesql
N'select * select es_codigo from especialidad order by @pp',
N'@pp char(40)',
N'es_nombre, es_codigo'

qué puedo hacer ?!

gracias
atte,
Hernán Castelo
UTN - Buenos Aires
. . . . . . . . . . . . . . . . . . . . . . . . .


.
. . . .

"Antes de poner caco-citas al final de los mensajes, pensemos un poco"
(de El chamán de Calidelphia,
opus póstuma de Kânr Djkmilÿa)


Respuesta Responder a este mensaje
#3 Javier Loria
24/11/2003 - 22:27 | Informe spam
Hola Hernan:
Para evitar el SQL Dinamico, pueder revisar el link de las virtudes y
maldades del SQL Dinamico: http://www.algonet.se/~sommar/dynamic_sql.html

Si son pocos datos en la tabla Especialidad (menos de 1000)puedes hacer
algo como:
SELECT es_codigo
FROM Especialidad
ORDER BY CASE WHEN @Tipo='nombre'
THEN es_nombre
WHEN @Tipo='codigo'
THEN es_codigo
END

Si son muchos datos, lo mejor es que hagas una serie de horribles IF's,
que separen los diferentes SELECT's y sus ORDER BY's

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.

Hernán Castelo escribio:
hola
quiero hacer un StoredProc
con un parámetro para indicar el ordenamiento
por ej. "nombre, codigo, ..." los campos del order by

intenté esto pero no me funciona...

declare @pp char(40)
set @pp= "es_codigo"
exec sp_executesql
N'select * select es_codigo from especialidad order by @pp',
N'@pp char(40)',
N'es_nombre, es_codigo'

qué puedo hacer ?!

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