--
-- Die Identität
-- Anweisungen, die eine ganze Tabelle unverändert ausgeben.
--

-- 
-- Ermittle den Inhalt der gesamten Tabelle.
-- 
-- Die erste Lösung ist, gerade im Web-Bereich, im Hinsicht auf Sicherheit
-- und Performanz deutlich schlechter, als die zweite Lösung. Die gilt vor
-- allem, wenn zur Tabelle später weitere Attribute hinzugefügt werden. 
-- Ausnahmen: COUNT(*), EXISTS(SELECT * ...)
-- 

SELECT * FROM KOWA.Haendler.haendler;                 
SELECT hnr, name, adresse FROM KOWA.Haendler.haendler;

-- 
-- Die folgenden Befehle sind korrekte SQL92-Befehle, jedoch keine SQL99-Befehle.
-- Das Ergebnis ist ebenfalls jeweils die ganze Tabelle.
-- Diese Befehle werden von Virtuoso nicht unterstützt.
-- 

-- TABLE KOWA.Haendler.haendler;
-- SELECT * FROM TABLE KOWA.Haendler.haendler;

-- 
-- Als Tabelle dürfen auch komplexe SQL-Ausdrücke verwendet werden.
-- Allerdings entfernt SQL Duplikate nicht automatisch.
-- Um dies zu erzwingen, muss "SELECT DISTINCT" verwendet werden:
-- 
-- SELECT DISTINCT * FROM <komplexer Ausdruck>;
-- 

-- Standard-SQL, aber Virtuoso-Fehler
-- SELECT DISTINCT * FROM (SELECT typ FROM KOWA.Haendler.ware);

SELECT DISTINCT * FROM (SELECT typ FROM KOWA.Haendler.ware) AS ware_typ;
SELECT          * FROM (SELECT typ FROM KOWA.Haendler.ware) AS ware_typ; -- Duplikate

