---
title: "SELECT Statement i en CASE"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/110143-select-statement-i-en-case"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Gladh"
published: "2004-08-27T11:54:09.000Z"
updated: "2004-08-27T13:58:46.000Z"
replies: 5
views: 272
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/110143-select-statement-i-en-case"
---

# SELECT Statement i en CASE

## #1 — Gladh, 2004-08-27T11:54Z

Jag försöker få följande SQL att fungera:

```
FoerstePris = CASE WHEN (a.KontantPris > 0)
		THEN
			Cast(0 as Decimal)
		ELSE
			SELECT MAX(b.HoejsteUdbudsPris) FROM EjendomsHandler b WHERE a.SagsIdent = b.SagsIdent and a.OlSident = b.OlSident and b. KvartalStart = (SELECT MIN(c.KvartalStart) FROM EjendomsHandler c WHERE a.SagsIdent = c.SagsIdent and a.OlSident = c.OlSident
		END
```

Det verkar dock som att man inte kan ha en SELECT statement i en CASE det står dock i books online att ett valit SQL statement skall fungera.

Om man inte kan ha SELECT i en CASE kan man lösa ovanstående på ett annat sätt???

\- Magnus

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

## #2 — @nders, 2004-08-27T11:57Z

Jag hade provat något sånt härnt:

```
SELECT CASE WHEN (a.KontantPris > 0)
		THEN
			Cast(0 as Decimal)
		ELSE
			MAX(b.HoejsteUdbudsPris) FROM EjendomsHandler b WHERE a.SagsIdent = b.SagsIdent and a.OlSident = b.OlSident and b. KvartalStart = (SELECT MIN(c.KvartalStart) FROM EjendomsHandler c WHERE a.SagsIdent = c.SagsIdent and a.OlSident = c.OlSident) 
		END AS FoerstePris
```

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

## #3 — Gladh, 2004-08-27T12:01Z

```
Server: Msg 156, Level 15, State 1, Line 31
Incorrect syntax near the keyword 'FROM'.
Server: Msg 156, Level 15, State 1, Line 32
Incorrect syntax near the keyword 'END'.
Server: Msg 170, Level 15, State 1, Line 42
Line 42: Incorrect syntax near ')'.
Server: Msg 170, Level 15, State 1, Line 43
Line 43: Incorrect syntax near ')'.
```

Såg ju så rätt ut :(

\- Magnus

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

## #4 — @nders, 2004-08-27T12:03Z

Så här borde det nog vara: 

```
SELECT CASE WHEN (a.KontantPris > 0)
		THEN
			Cast(0 as Decimal)
		ELSE
			MAX(b.HoejsteUdbudsPris) 
		END AS FoerstePris
FROM EjendomsHandler b WHERE a.SagsIdent = b.SagsIdent and a.OlSident = b.OlSident and b. KvartalStart = (SELECT MIN(c.KvartalStart) FROM EjendomsHandler c WHERE a.SagsIdent = c.SagsIdent and a.OlSident = c.OlSident)
```

Mvh

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

## #5 — Gladh, 2004-08-27T12:17Z

Det ser ut som det skulle fungera... tack så mycket.

\- Magnus

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

## #6 — @nders, 2004-08-27T13:58Z

Varsågod.

mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/110143-select-statement-i-en-case
