Databases Reference
In-Depth Information
17.1■Die Funktionen LEFT und RIGHT
Der Befehl LEFT gibt den linken Teil einer Zeichenfolge mit der angegebenen Anzahl von
Zeichen zurück. Der Befehl RIGHT gibt entsprechend den rechten Teil einer Zeichenfolge
aus.
LEFT (postcode,1) gibt also das erste Zeichen von links aus der Spalte postcode aus,
also die erste Zahl der Postleitzahl. Die Postleizahl ist als Datentyp varchar angelegt. Wenn
wir sie als numeric angelegt hätten, würde uns bei den Postleizahlen, die mit Null begin-
nen, die führende Null fehlen. Das kennen Sie vermutlich auch von jeder Excel-Tabelle.
Die einstelligen PLZ-Gebiete weisen wir wie folgt aus:
SELECT LEFT (postcode,1)'PLZ-Gebiet',
count (*) Anzahl
FROM [dbo].[iw_customer]
group by LEFT (postcode,1)
order by LEFT (postcode,1)
Bleibt noch das Alter. Wir haben das Geburtsdatum der Kunden und können mit der Funk-
tion DATEDIFF ( YEAR, Datum_1, Datum_2) den Abstand in Jahren messen und das
(ungefähre) Alter errechnen. Wir haben bereits gelernt, dass dies mit der Diferenz in Tagen
viel genauer geht, aber uns reicht hier die Diferenz der Jahreszahlen.
17.2■GETDATE - das aktuelle Tagesdatum
Um das jeweils aktuelle Alter zu berechnen, nehmen wir die Diferenz zwischen dem aktu-
ellen Tagesdatum und dem Geburtsdatum. Das aktuelle Tagesdatum rufen wir mit dem
Befehl GETDATE() auf. In Oracle-Datenbanken ist das der Befehl sysdate .
Unsere Syntax lautet wie folgt.
DATEDIFF ( YEAR , birthdate , GETDATE() )
Hinter GETDATE müssen immer zwei Klammern () gesetzt werden.
SELECT DATEDIFF ( YEAR , birthdate , GETDATE() )'Alter',
count (*) Anzahl
FROM [dbo].[iw_customer]
group by DATEDIFF ( YEAR , birthdate , GETDATE() )
order by DATEDIFF ( YEAR , birthdate , GETDATE() )
Das Wort Alter muss in Hochkommas gesetzt werden, weil es ansonsten als SQL-Befehl
verstanden würde.
Jetzt haben Sie alles zusammen. Sie können mit dem folgenden Select auch noch einmal
nachsehen, wie das Alter berechnet wird.
 
Search WWH ::




Custom Search