Microsoft SQL Server:带INSERT的CONCAT()

时间:2016-12-02 19:43:03

标签: sql-server

我目前正尝试使用CONCAT()将2列合并为1。

我有

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

现在这个工作并给了我想要的结果,但我不仅要看结果,而且实际上将它作为带有这些值的新列插入到表中,这样我就可以删除ApplicationTitle和{{ 1}}。推理是在导出信息时(我无法控制如何导出信息),它将ApplicationVersionApplicationTitle分开(澄清一下,它们是应用程序名称和应用程序版本,但我需要它使用 - divider进入1列,例如ApplicationTitle = SQL,ApplicationVersion = 4.0,我想要ApplicationName = SQL - 4.0)。我已经在线查看了但由于需要在ApplicationVersion填充后需要删除ApplicationTitleApplicationVersion,因此无法找到适用于我当前情况的类似内容。

这样做的最佳方式是什么?我的想法是ApplicationName命令与INSERT INTO,但这对我来说似乎不起作用(我确定我错过了一些东西)。

2 个答案:

答案 0 :(得分:0)

假设您有一个名为TableName的表,而TableName有一个列名ColumnName,那么您可以通过以下查询在TableName插入行:

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

答案 1 :(得分:0)

这将创建一个新表并按照您喜欢的方式插入记录,但是如果您尝试使用相同的表名再次运行它,则会出现类似&#34;表已经存在的错误&#34;:

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