@A Dwarf, SELECT Column1 + Column2 + Column3
funktioniert, solange alle Spalten aus Text bestehen und nicht null sind.
||
ist der Verkettungsoperator für Oracle. Für Access ist es &
.
Eine bessere Aussage wäre also
SELECT Column1 & Column2 & Column3 as NewColumn FROM MyTable
Wenn Sie den Raumseparator wünschen, wird dies natürlich
SELECT Column1 & " " & Column2 & " " & Column3 as NewColumn FROM MyTable
Der &
Operator behandelt Nullwerte als leere Zeichenfolge.
Wenn Sie nicht möchten, dass die zusätzlichen Leerzeichen angezeigt werden, können Sie so etwas wie verwenden
SELECT Nz([Column1] + " ","") & Nz([Column2] + " ","") & [Column3]
BEARBEITEN: Wenn Sie auch die ursprünglichen separaten Spalten sowie die verknüpfte Version einfügen möchten, listen Sie sie einfach auf, z.
SELECT Column1 & " " & Column2 & " " & Column3 as NewColumn, Column1, Column2, Column3 FROM MyTable
BEARBEITEN nach dem Lesen der Beispielausgabe des OP.
Es scheint, dass wir alle genau das tun, was das OP wollte. Um das zu erreichen, was Sie in dem von Ihnen gezeigten Beispiel verlangen, brauchen Sie.
SELECT Column1 FROM MyTable WHERE Column1 Is Not Null and Column1<>"" UNION ALL SELECT Column2 FROM MyTable WHERE Column2 Is Not Null and Column2<>"" UNION ALL SELECT Column3 FROM MyTable WHERE Column3 Is Not Null and Column3<>""
Wenn Sie Duplikate entfernen möchten, müssen Sie nur das Wort entfernen ALL
, damit Sie es erhalten
SELECT Column1 FROM MyTable WHERE Column1 Is Not Null and Column1<>"" UNION SELECT Column2 FROM MyTable WHERE Column2 Is Not Null and Column2<>"" UNION SELECT Column3 FROM MyTable WHERE Column3 Is Not Null and Column3<>""
Natürlich können Sie das beliebig UNION SELECT...
oft wiederholen .