512 messaggi dal 30 maggio 2002
In base alla scelta dell'utente tramite una select, dovrei passare alla stored procedure che mi torna il recordset il tipo di ordinamento selezionato, ho provato passandolo così:

CREATE PROCEDURE dbo.sp_view_recordset
(
@vOrder varchar(250)
)
AS
SELECT ecc. ecc...
WHERE(ecc. ecc..)
ORDER BY @vOrder
GO

ma da errore... come su fa?

Grazie.

se sapessero cosa penso sarei già morto...
512 messaggi dal 30 maggio 2002
Ho risolto così ma è corretto?

CREATE PROCEDURE dbo.sp_view_default
(
@orderBy VARCHAR(100)
)
AS
DECLARE @strSql NVARCHAR(4000)

SET @strSql = 'SELECT ecc ecc..
ORDER BY ' + @orderBy

execute sp_executesql @strSql
GO
Modificato da pegaso il 12 novembre 2004 16.13 -

se sapessero cosa penso sarei già morto...
2.410 messaggi dal 13 febbraio 2003
Contributi
hai 2 soluzioni:

1° costruisci la query e poi con exec la esegui ricordati che il campo riferito alla colonna deve essere un int

declare @SQLexp varchar(255)
select @SQLexp = 'SELECT ecc, ecc FROM tabella ORDER BY ' + str(@para_1)
exec (@SQLexp)

2° usi un if

declare @var int
select @var=1
select ecc, ecc from tabella
order by CASE
WHEN @var=1 THEN campo1
WHEN @var=2 THEN campo2
WHEN @var=3 THEN campo3
ELSE campo4
END
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
ithost ha scritto:
perfetto metodo 1


Direi invece pessimo...
Dai un'occhiata qui

http://www.sommarskog.se/dynamic_sql.html

Bye
63 messaggi dal 15 aprile 2002
Questo FORUM riguarda proprio un problema che sto avendo...:

Ho seguito il link:http://www.sommarskog.se/dynamic_sql.html

Ma mi da errore nel momento in cui un ordinamnento deve essere DESC...

Ho provato varie sintassi, l'ultima:

SELECT... bla, bla, bla...
ORDER BY
CASE @vlord WHEN 0 THEN CDCLS DESC else NULL END
CASE @vlord WHEN 1 THEN CDCLS else NULL END

Se tolgo il 'DESC' la procedura viene compilata mentre appena aggiungo il DESC mi torna l'errore:
Incorrect syntax near the keyword 'DESC'.

Avete un' ideuzza al riguardo......?

... A journey to find The anwers inside ... our illusive mind ...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.