2016-12-02 3 views
0

Ich versuche derzeit, 2 Spalten in 1 unter Verwendung CONCAT() zu kombinieren.Microsoft SQL Server: CONCAT() mit INSERT

Ich habe

SELECT 
    ApplicationTitle, 
    ApplicationVersion, 
    CONCAT(ApplicationTitle,' ',' - ',' ',ApplicationVersion) as ApplicationName 
FROM 
    <DataBaseName> 
    -- Hid DataBase name due to privacy concerns. 

Jetzt das funktioniert und gibt mir das Ergebnis Ich mag würde, aber ich muss nicht nur das Ergebnis sehen, aber eigentlich ist es in die Tabelle einfügen als neue Spalte mit diesen Werten so I kann ApplicationTitle und ApplicationVersion löschen. Schlussfolgerung ist, wenn die Informationen exportiert werden (ich habe keine Kontrolle darüber, wie die Informationen exportiert werden), es trennt ApplicationTitle von ApplicationVersion (um zu verdeutlichen, sie sind Anwendungsnamen und Anwendungsversionen, aber ich brauche es in 1 Spalte mit einem Teiler, zB ApplicationTitle = SQL, ApplicationVersion = 4.0, ich möchte ApplicationName = SQL - 4.0). Ich habe online gesucht, konnte aber nicht etwas Ähnliches finden, das für meine aktuelle Situation funktionierte, da ich ApplicationTitle und ApplicationVersion löschen musste, nachdem ApplicationName ausgefüllt wurde.

Was ist der beste Weg, dies zu tun. Mein Gedanke war INSERT INTO Befehl mit CONCAT, aber das scheint nicht für mich zu arbeiten (ich bin sicher, dass ich etwas vermisse).

+1

Ist die neue Spalte in derselben Tabelle? –

+0

3 Schritte: Spalte hinzufügen, neue Spalte auffüllen, alte Spalten entfernen. Beachten Sie, dass es sinnvoller ist, die Daten getrennt zu halten (IMO). 1) 'alter table add Spalte ApplicationName varchar (100);' 2) 'Tabellensatz aktualisieren ApplicationName = CONCAT (ApplicationTitle, '', '-', '', ApplicationVersion);' 3) 'alter table drop spalte applicationTitle, applicationVersion ; ' – xQbert

+0

Danke, das hat funktioniert – ScottM

Antwort

0

Angenommen, Sie haben eine Tabelle mit dem Namen TableName und TableName hat einen Spaltennamen ColumnName, dann können Sie Reihe bei TableName durch folgende Abfrage einfügen:

INSERT INTO TableName 
(ColumnName) 
SELECT 
    CONCAT(ApplicationTitle, ' ', ' - ', ' ', ApplicationVersion) 
FROM YourTableName 
0

Dies erzeugt eine neue Tabelle und die Datensätze einfügen, wie Sie möchten , aber wenn Sie versuchen, diese wieder zu laufen mit den gleichen Tabellennamen wird es einen Fehler, wie „Tabelle bereits vorhanden ist“:

SELECT 
    ApplicationTitle, 
    ApplicationVersion, 
    ApplicationName = CONCAT(ApplicationTitle,' ',' - ',' ',ApplicationVersion) 
INTO <NewTableName> 
FROM <DataBaseName>