ugrás a tartalomhoz

CASE használata MySQL-ben

vulcano · 2006. Már. 21. (K), 12.37
Hello!
Lenne egy hatalmas gondom!
Egy sql lekérdezést szeretnék írni a következő problémára:
Adott két tábla:

1iktabla:
---------
nev
hely
elhely
cim

2tabla
-------
cim
leir


az eredménynek a következőnek kellene lenni:
név |elhely | ha elhely=hely akkor null egyebkent az elhely-et névként felhasználva cim (allekérdezésként) | második táblából cimhez leir ha elozo nem null

Amire gondoltam:
Select e.nev,e.elhely,
Case e.hely
 where e.ehely then null
 else select m.cim from tablaegy m where e.hely=m.cim
end as acim
...
from tablaegy e
A gond: Valószínű az elgondolásom sem teljesen OK, de a mysql a case minden formájára hibát jelez, még a mintapéldára is. Van valakinek vmi ötlete?Köszönném a segítséget!!
 
1

mysql 5

virág · 2006. Már. 21. (K), 12.54
Szia,

hányas MySQL? Mert amit te szeretnél az csak 5-ös verziótól működik benne. Itt bővebben.
2

Köszi

vulcano · 2006. Már. 21. (K), 13.54
Szia!

Köszi a gyors válaszod! Akkor azért nem müxik. Kicsit el is szomorodtam... :'( :))
Nincs esetleg valami jó ötleted, hogy lehetne kiváltani a case-t?
3

case kiváltás

virág · 2006. Már. 21. (K), 14.59
Nem tudom miben használod az SQL-t. Ha valamilyen "külső" programozási nyelvben (PHP, Delphi, C stb.), akkor kezeld le abban, ha magában az adatbázis szerverben futtatod közvetlenül akkor nincs ötletem, esetleg upgrade 5-ös verzióra. Mondjuk a frissítés önmagában is megéri, mert egy sor más SQL parancsot támogat (tárolt eljárások, kioldók, stb.).
4

case helyett if

Hodicska Gergely · 2006. Már. 21. (K), 18.34
Case helyett használhatod a MySQL if függvényét is.


Felhő