/*************************************************************************************
 * Alle CPUs und sonstigen Waren 
 ***********************************************************************************Ž*/

SELECT * FROM ware w WHERE w.typ = 'CPU'
UNION
SELECT * FROM ware w WHERE w.typ = 'Sonstiges'
;

/* Da beide Anfragen auf dieselbe Tabelle zugreifen, kann auch der
 * OR-Operator verwendet werden. 
 */
SELECT * FROM ware w WHERE w.typ = 'CPU' OR w.typ = 'Sonstiges'
;


SELECT * FROM ware w WHERE w.typ = 'CPU'
UNION ALL
SELECT * FROM ware w WHERE w.typ = 'CPU'
;

SELECT * FROM ware w WHERE w.typ = 'CPU'
UNION DISTINCT
SELECT * FROM ware w WHERE w.typ = 'CPU'
;

SELECT * FROM ware w WHERE w.typ = 'CPU'
UNION
SELECT * FROM ware w WHERE w.typ = 'CPU'
;


/*************************************************************************************
 * Alle Haendler deren Name nicht mit 'M' anfängt.
 ***********************************************************************************Ž*/

SELECT * FROM haendler
EXCEPT
SELECT * FROM haendler h WHERE h.name like 'M%'
;

/* Da beide Anfragen auf dieselbe Tabelle zugreifen, kann auch der
 * NOT-Operator verwendet werden. 
 */
SELECT * FROM haendler h WHERE NOT h.name like 'M%'
;


/*************************************************************************************
 * Alle Haendler die 'Maier' heißen und in 'Köngisbrunn' wohnen.
 ***********************************************************************************Ž*/

SELECT * FROM haendler h WHERE h.name = 'Maier'
INTERSECT
SELECT * FROM haendler h WHERE h.adresse = 'Königsbrunn'
;

/* Da beide Anfragen auf dieselbe Tabelle zugreifen, kann auch der
 * AND-Operator verwendet werden. 
 */
SELECT * FROM haendler h WHERE h.name = 'Maier' AND h.adresse = 'Königsbrunn'
;


/*************************************************************************************
 * Sonstiges
 ***********************************************************************************Ž*/

/* funktioniert in PostgreSQL nicht */
/*
SELECT * FROM ware 
UNION ALL CORRESPONDING BY (typ)
SELECT * FROM ware
;
*/

/* funktioniert in PostgreSQL nicht */
/*
SELECT * FROM ware 
UNION ALL CORRESPONDING
SELECT * FROM ware
;
*/
