将两列中的值合并到第三列中

本文关键字:三列 合并 两列 | 更新日期: 2023-09-27 18:20:11

AUTOID --- BRANCHID ---- QUTNO
1           10           "10#1"
2           11           "11#2"

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

将两列中的值合并到第三列中

使用计算列怎么样?

类似的东西

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 小提琴演示

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

下面是计算列的示例:

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

您可以使用 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'))))