DESC e ASC parametrizzato su Store Procedure

mercoledì 24 gennaio 2007 - 08.36

secks Profilo | Senior Member

Vorrei aggiungere nella mia SP un parametro che dice se l'ordinamento deva essere DESC o ASC, come posso fare?

Ciao a tutti e grazie.
Paolo.

alx_81 Profilo | Guru

>Vorrei aggiungere nella mia SP un parametro che dice se l'ordinamento
>deva essere DESC o ASC, come posso fare?
Ciao!

Devi farlo su uno o più campi? sempre DESC o ASC oppure hai la necessità di ordinare qualche campo ASC e qualche campo DESC?
se è uniforme, farei un parametro che mi determina l'ordine e poi una semplice IF per gestirlo..
ad esempio:

CREATE PROCEDURE proc_Ordina @Ordine bit = 0 ( IF @Ordine = 0 SELECT Campo1,Campo2 FROM Tabella ORDER By Campo1, Campo2 ELSE SELECT Campo1,Campo2 FROM Tabella ORDER By Campo1 DESC, Campo2 DESC )

Così eviti anche l'sql dinamico..

>
>Ciao a tutti e grazie.
>Paolo.

Alx81 =)

http://blogs.dotnethell.it/suxstellino

secks Profilo | Senior Member

La soluzione che hai proposto è buona però chiedevo se il parametro posso in qualche gestirlo alla fine della query senza duplicare la query stessa, in quanto in caso di query complesse e lunghe penso diventi più difficile gestirle in caso di modifiche.

Ciao e grazie.
Paolo.

lbenaglia Profilo | Guru

>La soluzione che hai proposto è buona però chiedevo se il parametro
>posso in qualche gestirlo alla fine della query senza duplicare
>la query stessa, in quanto in caso di query complesse e lunghe
>penso diventi più difficile gestirle in caso di modifiche.

Ciao Paolo,

non è possibile parametrizzare le keyword ASC e DESC a meno di ricorrere al Dynamic SQL, costruendo la query come stringa ed eseguendola tramite EXEC o con la stored procedure si sistema sp_executesql.

>Ciao e grazie.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5