

SQL
https://ctrlv.cz/shots/2019/01/11/bGQ6.png
Dobrý den,
mám tabulku TAB v ní jsou hodnoty ID, PORADI, DATUM a já potřebuji dostat výpis kde pokud má ID DATUM, které není NULL, tak vybrat nejvyšší PORADI s DATUM a pokud má ID u DATUM jen NULL hodnoty, tak vybrat nejnižší PORADI.
Požadovaný výstup je také v obrázku,
Díky moc za radu
Použij UNION s dvěma dotazy. Prvním vybereš první část, druhým druhou část.
Až budeš něco konkrétního mít, napiš. Kompletní řešení domácí úlohy dávat nebudu.
Šlo by to i dotazy s poddotazy, ale nepíšeš, na jakém SQL serveru to má být. Od toho se odvíjí syntaxe
Je to pro MS SQL, nevsiml jsem si, ze jsem to odmazal odkazem.
Jinak domaci ukol to fakt neni, jen to moje hodne hrube zjednoduseni problemu tomu odpovida
UNION jsem zkousel, ale je moc pomale.
v PL SQL:
SELECT ID, poradi, datum
FROM tab
WHERE poradi = (SELECT MAX(poradi) FROM tab WHERE datum IS NOT NULL)
UNION
SELECT ID, poradi, datum
FROM tab
WHERE poradi = (SELECT min(poradi) FROM tab WHERE datum IS NULL)
;
Diky.