webForumDet fria alternativet

Använda IF eller CASE i sqlsats?

Databaser & SQL

1 svar · 209 visningar · startad av Hubert

Medlem sedan maj 200219 inlägg
Frågan#1

Hej
Jag kör följande kod:

SELECT under, dir FROM kataloger WHERE kID = '4589665' ORDER BY dir

Om det då blir "Empty set" så vill jag att den ska använda ett annat värde för

...WHERE kID = '4589665'...

Har testat med:

SELECT under, dir   FROM kataloger   WHERE kID = case when kID is null then '123456' else '4589665' end   ORDER BY dir

Och liknande lösningar, men får inte det att funka. Kör Mysql 3.23 så subselects är ingen lösning för mig.

Kan man lösa detta med en sqlsats?

Medlem sedan dec. 200012 464 inlägg
#2

Om jag har förstått ditt problem rätt så går det inte utan subqueries. Jag ser inget alternativ än att ställa en fråga till om den första inte ger något svar.

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
138 ms — ändringar (db)