Autor | Zpráva | ||
---|---|---|---|
bob99 Profil |
#1 · Zasláno: 12. 1. 2010, 13:04:43
Potřeboval bych poradit s následujícím SELECT dotazem. Mám dejme tomu jednu tabulku kde je sloupec "ico" a sloupec "nazev. Sloupec "ico" může obsahovat duplicitní hodnoty (ne NULL), sloupev "nazev" může obsahovat duplicitní ale i NULL.
SELECT ico, nazev FROM tabulka GROUP BY 1 ORDER BY 2 Úkol je vypsat seznam "ICO" neduplicitní spolu s názvem setříděných podle sloupce nazev. Problém mám v tom že u některých ICO se zobrazují NULL hodnoty. Chtělo by to aby dotaz pokud je nazev = "" vybral nazev z jineho radku, kde není prázdný viz příklad: SELECT ico, if(nazev = "", (SELECT nazev FROM tabulka WHERE nazev != "" AND ... ) , nazev) FROM tabulka GROUP BY 1 ORDER BY 2 Díky za každou radu. |
||
Kajman_ Profil * |
#2 · Zasláno: 12. 1. 2010, 13:09:30
Na název lze použít např. agregační funkci max či min...
select ico, min(nazev) nazev from tabulka group by ico |
||
bob99 Profil |
#3 · Zasláno: 12. 1. 2010, 13:26:23
Zadal jsem jak píšete a ve výsledku jsou stále ve sloupci nazev NULL hodnoty....
|
||
bob99 Profil |
#4 · Zasláno: 12. 1. 2010, 13:36:46
Tak už se podařilo. Ne min() ale max() ..... sice jsou vy výsledku ještě nějaké NULL hodnoty, ale to je tím že neexistuje žádný jiný řádek ico, který není NULL.
Díky |
||
bob99 Profil |
#5 · Zasláno: 12. 1. 2010, 13:59:56
Ještě mě napadlo jestli by to šlo najít v jiné tabulce a jak by asi ten dotaz vypadal?
|
||
Kajman_ Profil * |
#6 · Zasláno: 12. 1. 2010, 14:24:27
Prázdný řetězec a null hodnota není v mysql to samé, pokud tam máte prázdné řetězce, ale nechcete je uvádět, tak to vyřeší ten max, případně zakomponování funkce nullif.
Na spojení tabulek se používá konstrukce join |
||
Časová prodleva: 13 let
|
0