/* Funktion mit einem Attribut: round(preis/1.19,2) */
SELECT hnr, wnr, round(preis/1.19,2) AS "Preis ohne MwSt"
FROM   liefert
;

/* Funktion mit zwei Attributen: name || ' in ' || adresse*/
SELECT (name || ' in ' || adresse) AS haendlerinfo
FROM   haendler
;

/* Bessere Alternative im Falle von "adresse is null" */
SELECT CASE WHEN adresse IS NULL THEN name
            ELSE name || ' in ' || adresse
       END AS haendlerinfo
FROM   haendler
;

/*
 * Andere bessere Alternative im Falle von "adresse is null".
 *
 * COALESCE liefert das erste Argument als Ergebnis, dessen Wert nicht 
 * gleich null ist; null wird nur zurückgegeben, wenn alle Argumente
 * den Wert null haben.
 */
SELECT COALESCE(name || ' in ' || adresse, name) AS haendlerinfo
FROM   haendler
;

/* Funktion ohne Attribut */
SELECT 'PC-Komponente' AS "Art", bezeichnung FROM ware WHERE typ <> 'Sonstiges'
UNION
SELECT 'Haushaltsware' AS "Art", bezeichnung FROM ware WHERE typ =  'Sonstiges'
;

SELECT 6*7 + 93/1.16
FROM   haendler
;

SELECT now()
FROM   haendler
;

/* Postgres (nicht SQL-Standard) */
SELECT 6*7 + 93/1.16
;

SELECT now()
;
