---
title: "Hämta default värde om värde inte finns."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/167197-hämta-default-värde-om-värde-inte-finns"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Gladh"
published: "2007-12-12T12:59:48.000Z"
updated: "2007-12-12T13:20:14.000Z"
replies: 2
views: 539
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/167197-hämta-default-värde-om-värde-inte-finns"
---

# Hämta default värde om värde inte finns.

## #1 — Gladh, 2007-12-12T12:59Z

Jag har en tabell som innehåller information på olika språk

```
2bca71f1-bbb4-4158-8112-4cf41f06e932	1033	Aluminium
d12c5f06-07ae-4891-9aa6-728b82579369	1033	Wood
d12c5f06-07ae-4891-9aa6-728b82579369	1053	Trä
0dbeb888-4285-4199-9dd4-8b3c5140b2ea	1033	Steel
0dbeb888-4285-4199-9dd4-8b3c5140b2ea	1053	Stål
072e0455-6bb5-4865-b5bd-c9863e4568bb	1033	Concrete
072e0455-6bb5-4865-b5bd-c9863e4568bb	1053	Betong
```

Det jag vill är att kunna hämta ut de olika värderna baserade på LCID. Så om jag vill ha det på svenska så skall LCID = 1053. Men sedan är det ju så att man kan "glöma" att skriva in  något värde på ett språk (som jag gjort med Aluminium) och då vill jag att man skall hämta ut värdet men i basspråket (1033).

Så här har jag löst det, men skulle vilja få till det med en SELECT-sats och där med öka prestandan lite.

```
select * 
	from material 
	where lcid = 1053
union
select * 
	from material 
	where lcid = 1033 and identifier not in(select identifier 
	from material where lcid=1053)
```

Ger resultatet.

```
D12C5F06-07AE-4891-9AA6-728B82579369	1053	Trä
0DBEB888-4285-4199-9DD4-8B3C5140B2EA	1053	Stål
072E0455-6BB5-4865-B5BD-C9863E4568BB	1053	Betong
2BCA71F1-BBB4-4158-8112-4CF41F06E932	1033	Aluminium
```

\- M

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

## #2 — SPiN, 2007-12-12T13:17Z

```
SELECT * FROM material
  WHERE lcid=1053 OR
    (lcid=1033 AND identifier NOT IN
      (SELECT identifier FROM material WHERE lcid=1053)
    )
```

Frågan är väl om det är så mycket bättre prestanda på det.

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

## #3 — CatZ, 2007-12-12T13:20Z

```
select * 
	from material
	where lcid = 1053
	or
	identifier not in(select identifier from material where lcid=1053)
```

Kan ju tillägga att unionfrågorna är rätt vänliga mot databashanteraren, iaf i SQL server. Tror inte du sparar mer än någon rad kod.

Återkom gärna med hur mycket tid du sparar på den här satsen ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/167197-hämta-default-värde-om-värde-inte-finns
