Diskuze: sql except
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Moc SQL nerozumím ale co použít něco jako
SELECT * FROM objednavka WHERE cenaPolozky!=0 OR KodObjednavky NOT LIKE 'Z%'
Takovy dotaz už mě taky napadl, jenže toto vrátí všechny výsledky.
Tak v SQL se prý používá taky místo "!=" "<>"
SELECT * FROM objednavka WHERE cenaPolozky<>0 OR KodObjednavky NOT LIKE 'Z%'
SELECT * FROM objednavka WHERE cenaPolozky!="0" OR KodObjednavky NOT LIKE 'Z%'¨
SELECT * FROM objednavka WHERE cenaPolozky<>"0" OR KodObjednavky NOT LIKE 'Z%'
Zkus všechny tři
SELECT * FROM objednavka
WHERE Id not in (SELECT Id FROM objednavka WHERE cenaPolozky=0 OR KodObjednavky like 'Z%')
... bych napsal já
Dá se to tak napsat, ale v tomto případě mi to přijde zbytečné, když jde o dotaz v té samé tabulce... Takto bych to použil v případě, že by se podmínka týkala údajů v jiné tabulce. Tady stačí, jak psal plelovsky
SELECT * FROM objednavka WHERE NOT (cenaPolozky = 0 OR KodObjednavky LIKE 'Z%')
Já ne, protože bych tím naprosto zbytečně degradoval výkon.
Samozřejmě záleží na databázi, indexech atd., ale složitější dotaz
nemůže být efektivnější než jednodušší.
Pravda, pravda. Přiznávám.
(50063 row(s) affected)
SQL Server Execution Times:
CPU time = 313 ms, elapsed time = 2153 ms.
(50063 row(s) affected)
SQL Server Execution Times:
CPU time = 250 ms, elapsed time = 3743 ms.
Zobrazeno 9 zpráv z 9.