【问题标题】:Combine values from two columns into the third column将两列的值合并到第三列
【发布时间】:2013-06-27 20:35:03
【问题描述】:
AUTOID --- BRANCHID ---- QUTNO
1           10           "10#1"
2           11           "11#2"

AUTOID 是主要的自动生成列。我需要用branchidautoid 列中的值组合填充QUTNO 列。我如何在 sql server 插入语句存储过程中执行这些操作?

【问题讨论】:

  • 如果您的意思是插入 qutno,是否意味着它会在插入记录时获取自动递增的 ID(即 AUTOID)和 BRANCHID 的值并将其发布到 QUTNO?或者你的意思是说用已经存在的 AUTOID 和 BRANCHID 的值更新 qutno?

标签: c# sql-server


【解决方案1】:

使用计算列怎么样?

类似

DECLARE @TABLE TABLE(
        AUTOID INT IDENTITY(1,1),
        BRANCHID INT,
        QUTNO AS CAST(BRANCHID AS VARCHAR(25)) + '#' + CAST(AUTOID AS VARCHAR(25))
)

INSERT INTO @TABLE (BRANCHID) VALUES (10),(11)

SELECT * FROM @TABLE

SQL Fiddle DEMO

【讨论】:

    【解决方案2】:

    将该列设为计算列并设置计算表达式,以便相应地连接两列。

    【讨论】:

      【解决方案3】:

      这是计算列的示例:

      CREATE TABLE dbo.Products 
      (
          ProductID int IDENTITY (1,1) NOT NULL
        , QtyAvailable smallint
        , UnitPrice money
        --, InventoryValue AS QtyAvailable * UnitPrice
        , computed1 As Convert(varchar,QtyAvailable) + '#' + Convert(varchar, UnitPrice)
      );
      
      -- Insert values into the table.
      INSERT INTO dbo.Products (QtyAvailable, UnitPrice)
      VALUES (25, 2.00), (10, 1.5);
      
      -- Display the rows in the table.
      SELECT ProductID, QtyAvailable, UnitPrice, computed1
      FROM dbo.Products;
      

      它会产生输出:

      ProductID   QtyAvailable    UnitPrice   computed1
      1                 25         2.00       25#2.00
      2                 10         1.50       10#1.50
      

      【讨论】:

        【解决方案4】:

        您可以使用 IDENT_CURRENT() 来实现这一点。 http://msdn.microsoft.com/en-us/library/ms175098.aspx

        INSERT INTO TABLE1 (BRANCHID , QUTNO)
        VALUES (@branchId, @branchId + '#' + (SELECT CONVERT(VARCHAR(30), IDENT_CURRENT('dbo.TABLE1'))))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-02-06
          • 1970-01-01
          • 2018-11-02
          • 1970-01-01
          • 2021-11-12
          • 1970-01-01
          • 1970-01-01
          • 2020-04-16
          相关资源
          最近更新 更多