SQL Server: Die beste Methode zum Verketten mehrerer Spalten?

8

Ich versuche, mehrere Spalten in einer Abfrage in SQL Server 11.00.3393 zu verketten.

Ich habe versucht, die neue Funktion CONCAT() , aber es funktioniert nicht, wenn ich mehr als zwei Spalten verwende.

Ich frage mich also, ob das der beste Weg ist, das Problem zu lösen:

%Vor%

Ich kann COLUMN1 + COLUMN2 wegen NULL values ​​nicht verwenden.

BEARBEITEN

Wenn ich SELECT CONCAT('1','2','3') AS RESULT versuche, bekomme ich einen Fehler

  

Die CONCAT-Funktion benötigt 2 Argumente

    
D. Caan 23.06.2014, 16:40
quelle

5 Antworten

9

Durch den Diskurs ist klar, dass das Problem darin liegt, VS2010 zu verwenden, um die Abfrage zu schreiben, da es die kanonische CONCAT() -Funktion verwendet, die auf 2 Parameter begrenzt ist. Es gibt wahrscheinlich eine Möglichkeit, das zu ändern, aber ich bin mir dessen nicht bewusst.

Eine Alternative:

%Vor%

Bei diesem Ansatz müssen Nicht-String-Werte in Zeichenfolgen umgewandelt und konvertiert werden, ebenso wie NULL handling via ISNULL() oder COALESCE() :

%Vor%     
Hart CO 23.06.2014, 17:03
quelle
2
%Vor%     
JUVA 16.05.2016 17:23
quelle
0

Versuchen Sie es mit:

%Vor%     
user7912960 02.02.2018 11:16
quelle
0
  

Blockquote

Die Verwendung von Verkettungen in Oracle SQL ist sehr einfach und interessant. Aber ich weiß nicht viel über MS-SQL.

  

Blockquote

Hier gehen wir für Oracle: Syntax: SQL> select First_name||Last_Name as Employee from employees;

Ergebnis: MITARBEITER

EllenAbel SundarAnde MozheAtkinson

Hier AS: Schlüsselwort als Alias ​​verwendet. Wir können mit NULL Werten verketten. z.B. : columnm1 || Null

Angenommen, eine Ihrer Spalten enthält einen NULL Wert, dann zeigt das Ergebnis nur den Wert der Spalte mit dem Wert an.

Sie können auch Literalzeichenfolge in der Verkettung verwenden.

z.B. %Code% Ergebnis: Spalte1 ist eine Spalte2. Dazwischen sollte das Literal in ein einzelnes Zitat eingebettet sein. Sie können Zahlen ausschließen.

HINWEIS : Dies ist nur für Oracle Server // SQL.

    
Suraj Shrivastava 15.02.2018 08:18
quelle
-3

Wenn die Felder nullfähig sind, müssen Sie mit diesen Nullen umgehen. Denken Sie daran, dass null ansteckend ist und concat('foo', null) auch in NULL resultiert:

%Vor%

Grundsätzlich jedes Feld auf Nullheit testen und wenn ja, durch einen leeren String ersetzen.

    
Marc B 23.06.2014 16:44
quelle

Tags und Links