CREATE PROCEDURE sp_GetRisRos
@superuserid int,
@order
AS
SELECT * FROM RisRos
INNER JOIN Medlem
ON RisRos.MedlemsId = Medlem.MedlemsId
WHERE Medlem.Superuser = @superuserid
ORDER BY @order
Får fel att @order måste "deklareras".. :(
Har prövat lite olika sätt men får det inte till att fungera!!
@order kommmer att innehålla t.ex "Datum", "Rubrik" osv...
THX!
erkaMedlem sedan dec. 19996 522 inlägg order har du ju inte deklarerat typ på
som sagt, har provat en del sätt, även det du föreslog, fortfarande fel..
Error 1008: The SELECT item identified by the ORDER BY number 1 contains a variable as part of the expression identifying a column position. Variables are only allowed when ordering by an expression referencing a column name
DÄR är felmesset SQL Server...
EDIT: Fast nu var det inget "must declare.." fel.. :o
erkaMedlem sedan dec. 19996 522 inlägg Kör ett case då på den variabel du tar in i order
CREATE PROCEDURE sp_GetRisRos
@superuserid int,
@order varchar(50)
AS
SELECT * FROM RisRos
INNER JOIN Medlem
ON RisRos.MedlemsId = Medlem.MedlemsId
WHERE Medlem.Superuser = @superuserid
ORDER BY
select case @order
when 'MyDate' then TblKlmDatum
when 'Header' then TblKlmHEader
end
LarsGMedlem sedan dec. 200012 464 inlägg Alla resultaten i case måste vara av samma type
CREATE PROCEDURE sp_GetRisRos
@superuserid int,
@order varchar(50)
AS
SELECT * FROM RisRos
INNER JOIN Medlem
ON RisRos.MedlemsId = Medlem.MedlemsId
WHERE Medlem.Superuser = @superuserid
ORDER BY
case @order
when 'MyDate' then cast(TblKlmDatum as varchar)
when 'Header' then TblKlmHEader
end
erkaMedlem sedan dec. 19996 522 inlägg LarsG, exakt vad gör Cast raden förstår inte den riktigt.
gr8, du är en klippa LarsG ;)
förresten, om jag vill ha ORDER BY TblKlmDatum desc... Vart ska det in isf??
LarsGMedlem sedan dec. 200012 464 inlägg CREATE PROCEDURE sp_GetRisRos @superuserid int, @order varchar(50) AS
SELECT * FROM RisRos INNER JOIN Medlem ON RisRos.MedlemsId = Medlem.MedlemsId
WHERE Medlem.Superuser = @superuserid ORDER BY case @order
when 'MyDate' then cast(TblKlmDatum as varchar)
else 'a' end desc,
case @order when 'header' then TblKlmHEader else '1' end
cast konverterar från en datatyp till en annan.