【问题标题】:MS SQL Insert into concatMS SQL 插入 concat
【发布时间】:2017-08-29 06:48:44
【问题描述】:

我需要从 Column2_table1 中提取第一个字符并将其添加到来自 Column1_table1 的值之前,并且我希望这个连接值进入空列 Column3_table1。

我有:

Column1_table1   Column2_table1   Column3_table1
1234               abcd              
1245               aeio
1545               dfaf
1545               jhui 

INSERT INTO [dbo].[Table1] ([Column3_table1])
SELECT  
    Column1_table1, 
    CONCAT(left(Column2_table1,1) ,Column1_table1)
FROM Table1  

Msg 121, Level 15, State 1, Line 1 INSERT 的选择列表 语句包含比插入列表更多的项目。的数量 SELECT 值必须与 INSERT 列数匹配。

我需要

Column1_table1   Column2_table1   Column3_table1
1234               abcd              a1234
1245               aeio              a1245
1545               dfaf              d1545
1545               jhui              j1545

感谢您的帮助

【问题讨论】:

  • 您使用的是 MySQL 还是 MS SQL Server?不要标记未涉及的产品。
  • 您尝试在 insert 的一列中从 select 中插入两列
  • SELECT (([Column3_table1])) 中的列数为 1,而INSERT 中的列数为 2 (Column1_table1, CONCAT(left(Column2_table1,1) ,Column1_table1))。
  • 你想要更新。但是,存储这样的“计算”值通常不是一个好主意。换一个观点。或计算列。

标签: sql sql-server sql-update substring concat


【解决方案1】:

试试这个:

UPDATE [dbo].[Table1] 
SET [Column3_table1] = LEFT(Column2_table1, 1) + Column1_table1;

【讨论】:

    【解决方案2】:

    我认为这将解决您的问题,

    update `Table1` set `Column3_table1` = CONCAT(left(`Column2_table1`,1) ,`Column1_table1`)
    

    享受吧!

    【讨论】:

      【解决方案3】:

      试试这个查询:

      UPDATE [dbo].[Table1] SET [dbo].[Table1] ([Column3_table1]) = concat(SUBSTRING ([dbo].[Table1] ([Column2_table1]),1,1),[dbo].[Table1] ([Column1_table1]))
      

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 2016-01-31
        • 2017-05-31
        • 2020-06-15
        • 2011-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多