---
title: "Deklarera variabler i SP..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/49786-deklarera-variabler-i-sp"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "JAreMANNEN"
published: "2002-08-08T12:36:50.000Z"
updated: "2002-08-08T21:36:46.000Z"
replies: 10
views: 337
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/49786-deklarera-variabler-i-sp"
---

# Deklarera variabler i SP...

## #1 — JAreMANNEN, 2002-08-08T12:36Z

```
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!

Permalänk: https://www.webforum.nu/p/49786

## #2 — erka, 2002-08-08T12:38Z

order har du ju inte deklarerat typ på

Permalänk: https://www.webforum.nu/p/746107

## #3 — erka, 2002-08-08T12:38Z

@order varchar(20)

Permalänk: https://www.webforum.nu/p/746108

## #4 — JAreMANNEN, 2002-08-08T12:41Z

som sagt, har provat en del sätt, även det du föreslog, fortfarande fel..

Permalänk: https://www.webforum.nu/p/746111

## #5 — JAreMANNEN, 2002-08-08T12:43Z

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

Permalänk: https://www.webforum.nu/p/746117

## #6 — erka, 2002-08-08T12:48Z

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

Permalänk: https://www.webforum.nu/p/746121

## #7 — LarsG, 2002-08-08T12:55Z

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
```

Permalänk: https://www.webforum.nu/p/746129

## #8 — erka, 2002-08-08T13:22Z

LarsG, exakt vad gör Cast raden förstår inte den riktigt.

Permalänk: https://www.webforum.nu/p/746149

## #9 — JAreMANNEN, 2002-08-08T13:32Z

gr8, du är en klippa LarsG ;)

Permalänk: https://www.webforum.nu/p/746162

## #10 — JAreMANNEN, 2002-08-08T13:41Z

förresten, om jag vill ha ORDER BY TblKlmDatum **desc**... Vart ska det in isf??

Permalänk: https://www.webforum.nu/p/746170

## #11 — LarsG, 2002-08-08T21:36Z

```
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.

Permalänk: https://www.webforum.nu/p/746533

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/49786-deklarera-variabler-i-sp
