SQL Befehl CONCAT()?
Moin,
ich soll von einer Datenbank nur den ersten Buchstaben von den Vornamen abfragen.
Wie nutze ich da den obenstehenden Befehl?
2 Antworten
Hallo,
CONCAT() verbindet alle übergebenen (bis zu 255) Strings zu einem und dürfte mit deinem Vorhaben gar nichts zu tun haben.
LEFT(string, number_of_chars), in deinem Fall LEFT(VORNAME,1) ist die benötigte Funktion.
Du musst angeben, WIEVIELE Buchstaben vom Anfang des Strings du haben willst. Das macht dieser Parameter.
number of chars = Anzahl der Buchstaben.
In deinem Fall willst du nur einen Buchstaben haben, also die 1.
Ich habe es jetzt mit dem Befehl Substring gemacht. Aber wie nutze ich das jetzt in Kombination mit Concat.
Also ich möchte Quasi das Ergebnis nur in Kombination mit Substring:
SELECT CONCAT(`vorname`," ",`nachname` )
Anstatt direkt die Spalten reinzuschreiben, schreibst du halt die Substring-Funktion in die Klammern rein. Also
SELECT CONCAT(SUBSTRING(vorname, 1, 1), SUBSTRING(nachname, 1, 1)) AS initialen FROM Personen
Dann schreibt man die 1 rein, deswegen habe ich das ja gemacht. Willst du die ersten 3 haben, kommt eben die 3 reinusw.
wie kommst du auf die 255 , ich würde sagen, das liegt doch eher an der config des servers.
Nein, dafür verwendest Du LEFT (Du könntest auch SUBSTRING verwenden, aber LEFT ist aus meiner Erfahrung signifikant schneller).
Ah sorry, sollte auch den Befehl Substring nehmen und es dann nämlich mit Concat kombinieren :D
Aber der Befehl fängt doch an die Buchstaben von links wegzulassen oder nicht?
Nein. Der Befehl LEFT liefert Dir die x Buchstaben am Anfang des gegebenen Strings.
LEFT(Feld, 5) liefert die 5 ersten Buchstaben aus dem Feld "Feld" - sofern das eben Text enthält.
Was genau sagt die number of chars?
Wenn ich jetzt nur den ersten Buchstaben haben möchte.