BEISPIEL
BEISPIEL
Kapitel 8: SQL in Theorie und Praxis
Verwenden von Unterabfragen
DELETE FROM
Artikel
WHERE
ArtikelNr IN (SELECT TOP 10 Artikelnr FROM Bestelldetails
ORDER BY (Einzelpreis * Anzahl))
Bemerkungen
Mit der DELETE-Anweisung löschen Sie nur Datensätze und nicht die Tabelle selbst. Zum Löschen der
gesamten Tabelle nutzen Sie die Anweisung DROP TABLE.
DELETE löscht nur komplette Records. Einzelne Tabellenfelder lassen sich auf diese Weise nicht
löschen. Verwenden Sie in diesem Fall UPDATE und weisen Sie den gewünschten Spalten NULL-Values
zu.
Das Löschen einzelner Datensätze kann gegen Regeln der referenziellen Integrität verstoßen, eine SQL-
DELETE-Anweisung kann also auch fehlschlagen (Fehlerbehandlung!).
Erweiterte SQL-Funktionen
Im Folgenden wollen wir Ihnen weitere Möglichkeiten von SQL vorstellen, wie Sie
Ihre Abfragen in eine optisch ansprechendere Form bringen,
Berechnungsfunktionen nutzen,
mit Datums- und Zeitfunktionen arbeiten,
Kreuztabellenabfragen realisieren und
wie Sie hierarchische Recordsets abfragen.
Berechnete/Formatierte Spalten
Vielleicht haben Sie bereits bemerkt, dass sich die Schreibweise der Spaltennamen auf die Anzeige in einer
Tabelle auswirkt. Mit der AS-Klausel können Sie jeder einzelnen Spalte eine beliebige Bezeichnung zuwei-
sen. Enthält diese ein Leerzeichen, müssen Sie den String in eckige Klammern einschließen.
Ändern der Spaltenbezeichner
Nachname
in
Name
und
Geburtsdatum
in
geboren am
SELECT
Vorname,
Nachname AS Name,
Geburtsdatum AS [geboren am]
FROM
Personal
466
BEISPIEL
Abbildung 8.61 Abfrageergebnis
Neben der Veränderung der Spaltenbezeichner können Sie auch eine oder mehrere Tabellenspalten in einer
neuen Spalte zusammenfassen.
Ausgabe des Namens in der Form »Nachname, Vorname«
SELECT
Nachname + ', ' + Vorname AS Name
FROM
Personal
Abbildung 8.62 Abfrageergebnis
Format-Funktion
Alternativ bietet sich für die Formatierung von Ausgabeergebnissen die recht leistungsfähige Format-Funk-
tion an.
Format(Ausdruck [,Formatierungsstring])
Der Parameter Ausdruck ist im einfachsten Fall eine Fest- oder Gleitkommazahl, kann aber auch eine kom-
plette Formel beinhalten.
Das Formatieren ist fast eine Wissenschaft für sich, denn der Formatierungsstring gestattet eine (fast unbe-
grenzte) Vielfalt von Darstellungsmöglichkeiten nicht nur für Zahlen, sondern auch für Währungen,
Datums-/Zeitangaben und Strings.
Jet-SQL stellt eine Reihe von vordefinierten Stringkonstanten bereit, die Sie anstelle eines eigenen Forma-
tierungsstrings einsetzen können:
467
Erweiterte SQL-Funktionen
BEISPIEL
BEISPIEL
Kapitel 8: SQL in Theorie und Praxis
Formatierungsstring Erklärung (für deutsche Ländereinstellung)
General Number Normaldarstellung, ohne Tausender-Separator (.)
Fixed Zeigt mindestens eine Vor- und mindestens zwei Nachkommastellen an
Standard Darstellung mit Tausender-Separator (.) und mindestens zwei Nachkommastellen
Currency Währungsformat
Percent Prozentdarstellung
Scientific Wissenschaftliche Notation
Yes/No 0 = Nein, sonst Ja
True/False 0 = Falsch, sonst Wahr
On/Off 0 = Aus, sonst Ein
Tabelle 8.12 Formatierungsstrings
Verschiedene Formatierungen für Zahlenwerte
Format(12345.6789,'General Number') ---> 12345,6789
Format(12345.6789,'Fixed') ---> 12345,68
Format(12345.6789,'Standard') ---> 12.345,6789
Format(12345.6789,'Currency') ---> 12.345,68
Format(12345.6789,'Scientific') ---> 1,23E+04
Format(0.123456789,'Percent') ---> 12,35%
Artikelnamen und Preis (in Euro) aller Artikel
SELECT
Artikelname, Format(Einzelpreis,'Currency') AS Einzelpreis
FROM
Artikel
Abbildung 8.63 Abfrageergebnis
Unter Verwendung folgender Zeichen innerhalb des Formatierungsstrings können Sie sich eigene Forma-
tierungen »zusammenbasteln«.
468
BEISPIEL
HINWEIS
BEISPIEL
Formatierung Erklärung (für deutsche Ländereinstellung)
"" Formatierte Zahlenausgabe
0 Platzhalter, zeigt die Ziffer 0 oder ein anderes Zeichen
# Platzhalter, zeigt nichts oder ein anderes Zeichen
. (Punkt) Dezimaltrenner, bestimmt Vor- und Nachkommastellen
% Prozentplatzhalter, multipliziert die Anzeige mit 100
, (Komma) Tausender-Separator, für Zahlen mit vier und mehr Stellen
E- E+ e- e+ Exponentialschreibweise
- + $ ( ) Leerzeichen Diese Zeichen werden direkt angezeigt
\ Das nachfolgende Zeichen wird angezeigt
Tabelle 8.13 Zulässige Formatierungszeichen
Einfache Formatierungen
Format(000234, '###0') ---> 234
Format(234.7, '###0.00') ---> 234,70
Format(234.7, '#0.00E+00') ---> 23,47E+01
Format(500000, '##,##.00 Euro') ---> 50.000,00 Euro
Beachten Sie die gegensätzliche Bedeutung von Punkt (.) und Komma (,) im Formatierungsstring!
Eine alternative Währungsformatierung zum obigen Beispiel.
SELECT
Artikelname,
Format(Einzelpreis,'#,##0.00 Euro') AS Verkaufspreis
FROM Artikel
Abbildung 8.64 Abfrageergebnis
469
Erweiterte SQL-Funktionen
BEISPIEL
BEISPIEL
Kapitel 8: SQL in Theorie und Praxis
Diese Formatierung gestattet das Einfügen von Text.
SELECT
Vorname, Nachname,
Format(Geburtsdatum, "dddd, \d\e\n dd.mm.yyyy") AS Geburtstag
FROM Personal
Abbildung 8.65 Abfrageergebnis
Selbst eine Datumsangabe im korrekten SQL-Format ist auf diese Weise möglich.
SELECT
Vorname, Nachname, Format(Geburtsdatum, '\#mm\/dd\/yyyy\#') AS Geburtstag
FROM Personal
Abbildung 8.66 Abfrageergebnis
Auch die Darstellung von Zeichenketten lässt sich mit Format manipulieren:
Zeichen Bedeutung
@ Platzhalter für Zeichen oder Leerzeichen
& Platzhalter für Zeichen oder nichts
! Füllt Platzhalter von links nach rechts auf (sonst umgekehrt)
< > Darstellung in Klein- bzw. Großbuchstaben
Tabelle 8.14 Formatieren von Zeichenketten
470

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.