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.

259 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)