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.