webForumDet fria alternativet

lagrad procedur & order by

Webbutveckling

3 svar · 364 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Hur skriver jag variabeln @Sortorder?
Får: incorrect syntax near '@Sortorder'
Värdet är antingen Asc eller Desc.

CREATE PROCEDURE sp_viewReplies
@Sortorder AS nvarchar
AS
Select bla
From tblQuestions Q 
Order By Q.Regdate @Sortorder
Medlem sedan juni 200032 967 inlägg
#2

Du får nog göra det med dynamisk SQL.

EXEC 'Select bla
From tblQuestions Q 
Order By Q.Regdate ' + @Sortorder

Eftersom det bara är två olika värden variabeln kan anta, så kanske du kan ha en if-sats istället.

Mvh,

Medlem sedan dec. 200012 464 inlägg
#3

3 lösningar

if @sortOrder = 'asc' 
Select bla
From tblQuestions Q 
Order By Q.Regdate 
else
Select bla
From tblQuestions Q 
Order By Q.Regdate desc
Select bla
From tblQuestions Q 
Order By case @sortoder when 'ASC'
then Q.Regdate else getdate() end,
case @sortorder when 'DESC' then 
q.regdate else getdate() end desc
declare @s varchar(300)
set @s = 'Select bla
From tblQuestions Q 
Order By Q.Regdate ' + @Sortorder
exec(@s)
Medlem sedan juni 20003 076 inlägg
#4

thanx! :)

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)