webForumDet fria alternativet

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

2 svar · 511 visningar · startad av Gladh

GladhMedlem sedan maj 20012 812 inlägg
#1

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

SPiNMedlem sedan mars 20007 896 inlägg
#2
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.

CatZMedlem sedan jan. 20022 440 inlägg
#3
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 ;)

132 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)