Gints Plivna Posted January 2, 2008 Report Share Posted January 2, 2008 SELECT something FROM karte WHERE id BETWEEN 4850 AND 4860 UNION SELECT something FROM karte WHERE id BETWEEN 4950 AND 4960 UNION ... Sāksim jau pirmkārt ar to ka šie 2 SQL teikumi - pirmais kas minēts šī threada pašā sākumā un otrs - kas citēts tieši augstāk ir dažādi. Skat piemēru: SQL> create table karte (id number, something varchar2(10)); Table created. SQL> insert into karte values (4850, 'bla'); 1 row created. SQL> insert into karte values (4851, 'bla'); 1 row created. SQL> commit; Commit complete. SQL> SELECT something FROM karte WHERE id BETWEEN 4850 AND 4860 OR id BETWEEN 4950 AND 4960 OR id BE TWEEN 50 AND 60 OR id BETWEEN 150 AND 160 OR id BETWEEN 250 AND 260; SOMETHING ---------- bla bla SQL> SELECT something FROM karte WHERE id BETWEEN 4850 AND 4860 UNION SELECT something FROM karte WH ERE id BETWEEN 4950 AND 4960; SOMETHING ---------- bla Ooops otrā gadījumā dabūjam tikai 1 rindiņu :O Un te nu ir - izzini UNION un UNION ALL atšķirības, nemaz nerunājot par tādiem sīkumiem, kā to, ka UNION rada nevajadzīgu unikālo vērtību atsijāšanu un papildus noslodzi, ja vērtības jau pirms tam ir garantēti zināmas kā unikālas :) Otrkārt tas kas tika teikts pirms tam par to ka ORDER BY ir nepieciešams jebkurā gadījumā - paliek spēkā arī priekš jebkura cita vaicājuma ieskaitot UNION, UNION ALL vai da jebko citu. Protams, ORDER BY var nelietot, apzinoties sekas, ka potenciāli nākotnē tas var radīt problēmas, kad saraksti vairs nebūs tādā kārtībā kā gribās ;) Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
Gints Plivna Posted January 8, 2008 Report Share Posted January 8, 2008 Un te nu ir - izzini UNION un UNION ALL atšķirības, nemaz nerunājot par tādiem sīkumiem, kā to, ka UNION rada nevajadzīgu unikālo vērtību atsijāšanu un papildus noslodzi, ja vērtības jau pirms tam ir garantēti zināmas kā unikālas :) Skatoties uz šito uzcepināju raksteli, kurā ir apskats par visiem SQL kopas operatoriem ar piemēriem un bildītēm :) http://datubazes.wordpress.com/2008/01/08/sql-select-ii Gints Link to comment Share on other sites More sharing options...
Recommended Posts