SQL Befehl CONCAT()?

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.

joahnnes38 
Fragesteller
 27.05.2021, 09:38

Was genau sagt die number of chars?
Wenn ich jetzt nur den ersten Buchstaben haben möchte.

1
ohwehohach  27.05.2021, 09:41
@joahnnes38

Du musst angeben, WIEVIELE Buchstaben vom Anfang des Strings du haben willst. Das macht dieser Parameter.

1
daCypher  27.05.2021, 09:41
@joahnnes38

number of chars = Anzahl der Buchstaben.

In deinem Fall willst du nur einen Buchstaben haben, also die 1.

1
joahnnes38 
Fragesteller
 27.05.2021, 10:10
@daCypher

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` )

0
daCypher  27.05.2021, 10:24
@joahnnes38

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
1
heizfeld  27.05.2021, 11:38
@joahnnes38

Dann schreibt man die 1 rein, deswegen habe ich das ja gemacht. Willst du die ersten 3 haben, kommt eben die 3 reinusw.

0
TechPech1984  27.05.2021, 09:42

wie kommst du auf die 255 , ich würde sagen, das liegt doch eher an der config des servers.

0

Nein, dafür verwendest Du LEFT (Du könntest auch SUBSTRING verwenden, aber LEFT ist aus meiner Erfahrung signifikant schneller).

joahnnes38 
Fragesteller
 27.05.2021, 09:35

Ah sorry, sollte auch den Befehl Substring nehmen und es dann nämlich mit Concat kombinieren :D

0
joahnnes38 
Fragesteller
 27.05.2021, 09:37

Aber der Befehl fängt doch an die Buchstaben von links wegzulassen oder nicht?

0
ohwehohach  27.05.2021, 09:40
@joahnnes38

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.

1