2016-12-02 2 views
0

В настоящее время я пытаюсь объединить 2 столбца в 1, используя CONCAT().Microsoft SQL Server: CONCAT() с INSERT

У меня есть

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

Теперь это работает и дает мне результат, я хотел бы, но мне нужно, чтобы не только увидеть результат, но на самом деле вставить его в таблицу, как новый столбец с теми значениями, так что я может удалить ApplicationTitle и ApplicationVersion. Рассуждение - это когда вы экспортируете информацию (я не контролирую, как экспортируется информация), она отделяет ApplicationTitle от ApplicationVersion (чтобы уточнить, это имена приложений и версии приложений, но мне нужно это в 1 столбец с разделителем, например ApplicationTitle = SQL, ApplicationVersion = 4.0, я хочу ApplicationName = SQL - 4.0). Я смотрел онлайн, но не мог найти что-то похожее, которое сработало для моей текущей ситуации из-за необходимости удаления ApplicationTitle и ApplicationVersion после того, как ApplicationName был заселен.

Каков наилучший способ сделать это. Моя мысль была INSERT INTO команда с CONCAT, но это не работает для меня (я уверен, что мне что-то не хватает).

+1

Является ли новый столбец в той же таблице? –

+0

3 шага: добавить столбец, заполнить новый столбец, удалить старые столбцы. Обратите внимание, что имеет смысл хранить данные отдельно (IMO). 1) 'alter table add column ApplicationName varchar (100);' 2) 'Update table set ApplicationName = CONCAT (ApplicationTitle, '', '-', '', ApplicationVersion);' 3) 'alter table drop column applicationTitle, applicationVersion ; ' – xQbert

+0

Спасибо, это сработало – ScottM

ответ

0

Предположим, у вас есть таблица с именем TableName и TableName имеет одно имя столбца ColumnName, то вы можете вставить строку в TableName по следующему запросу:

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

Это создаст новую таблицу и вставить записи, как вам нравится , но если вы попытаетесь запустить этот раз с тем же именем таблицы будет давать ошибку как «таблица уже существует»:

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