Do tej pory rozważaliśmy podzapytania odnoszące się do kolumn 					   (podzapytania skalarne), tzn. podzapytania, które zwracają pojedynczą 					   wartość kolumny. Podzapytanie wierszowe jest takim podzapytaniem, 					   które zwraca jeden wiersz, i tym samym może zwrócić więcej niż  					   jedną wartość kolumny.   Na przykład patrz Listing 1.0 lub 2.0.        W obydwu przypadkach wartośc zapytania jest równa TRUE jeśli tylko tablica tab2 zawiera wiersz, w którym 					   col1 = 1, i col2 = 2.   Wyrażenie (1,2) i ROW(1,2) są czasem nazywane konstruktorami wierszowymi. Są też poprawne 					   w troche innym kontekście. Na przykład, następne dwa zapytania  					   są składniowo równoważne:(lisitng 3.0)     Normalnie, konstruktorów wieszowych używa się w celu porównania 					   z podzapytaniami, które zwracają wartości dówch lub więcej kolumn. 					   Na przykład, wykonanie nastepującego zapytania: (patrz listing 4.0)    da nam wynik: "wszystkie wiersze, w tablicy tab1 które istnieją też w tablicy tab2".
Listing
SELECT * FROM tab1 WHERE (1,2) = (SELECT col1, col2 FROM tab2);
--Listing 2.0
SELECT * FROM tab1 WHERE ROW(1,2) = (SELECT col1, col2 FROM tab2);
--Listing 3.0
SELECT * FROM tab1 WHERE (col1,col2) = (1,1);
SELECT * FROM tab1 WHERE col1 = 1 AND col2 = 1;
--Listing 4.0
SELECT col1,col2,col3
FROM tab1
WHERE (col1,col2,col3) IN
(SELECT col1,col2,col3 FROM tab2);
Ranga: Administrator serwisu Punktów: 0



 
  
				

 
                             
 


 
                        
 
		 
	