Wie verketten Sie Zeichenfolgen und Kommas in SQL Server?

7

Ich bin relativ neu in MSSQL, also tut mir leid, wenn die Frage trivial klingt. Ich möchte mehrere Felder mit einem Trennzeichen , verketten. Wenn das Feld jedoch leer ist, wird das zusätzliche , ebenfalls in die Ergebniszeichenfolge aufgenommen. Gibt es einen einfachen Weg, dieses Problem zu lösen? Zum Beispiel

%Vor%     
Chan 18.03.2011, 17:06
quelle

12 Antworten

6

Wenn die Spalten leer statt null sind, können Sie Folgendes versuchen:

%Vor%     
Joel Beckham 18.03.2011, 17:25
quelle
11

Diese modifizierte Version von Lamak behandelt NULL oder Zeichenketten, die nur Leerzeichen / Leer enthalten:

%Vor%     
Cade Roux 18.03.2011 17:34
quelle
7

Ich konnte es mit einem etwas anderen Ansatz zum Laufen bringen. Die Kommas am Anfang jedes Feldes zu setzen und dann das erste mit der STUFF-Funktion zu entfernen, funktionierte für mich:

%Vor%     
mtavares 21.10.2011 18:17
quelle
2

Versuchen Sie Folgendes:

%Vor%     
Lamak 18.03.2011 17:12
quelle
2

Kurze oder lange Antwort?

Kurze Antwort - nicht. Dies ist ein Formatierungsproblem, kein Datenbankproblem.

Lange Antwort - Wenn Sie eine Zeichenfolge und eine Null in SQL Server verketten, ist das Ergebnis null. Sie können also Kombinationen von ISNULL

verwenden %Vor%     
Jamiec 18.03.2011 17:14
quelle
1

Sie müssen die Groß- / Kleinschreibung verwenden, wenn IsNull (Feldname, '') = '' oder ltrim (rtrim (Feldname)) = '') Dann ... Else ... end + ...

Bearbeiten:
Wurde von Android Mobile geschrieben.
Unter Ihrem Beispiel.
Die folgenden Übersetzungen (aus Deutsch) gelten, FYI:

  

Vorname: Vorname   Name: Familienname   Benutzer: Benutzer

Und hier ist der Beispielcode:

%Vor%     
Stefan Steiger 18.03.2011 17:17
quelle
0

Sie könnten ISNULL(field + ',', '')

verwenden     
Andrew 18.03.2011 17:13
quelle
0
%Vor%     
Dumitrescu Bogdan 18.03.2011 17:17
quelle
0

Ich stimme Jamiecs kurzer Antwort vollkommen zu.

Andernfalls würde ich eine unangenehme Lösung mit der Verwendung eines REPLACE ([concat], ",, ',', ') überall dort, wo Sie zwei Spalten verketten, und dann herausfinden, wie Sie Kommas von Anfang und Ende schneiden die Zeichenfolge, bei der die erste und die letzte Spalte leer sein können. Sehr sehr unordentlich.

    
ses011 18.03.2011 17:20
quelle
0

Ich wollte sehen, ob ich es ohne CASE bekommen kann, aber nicht konnte. Ein langatmiger Weg von mir:

%Vor%     
ahmjt 09.12.2011 11:44
quelle
0
%Vor%     
NARENDRA 20.07.2015 07:53
quelle
-1

Dies fügt keine Kommata bei Null-Strings

hinzu %Vor%     
Oleg 10.07.2016 16:17
quelle