gpt4 book ai didi

sql - SQL Server 2012 特殊自定义增量列

转载 作者:行者123 更新时间:2023-12-02 04:31:08 26 4
gpt4 key购买 nike

假设我有一个包含 3 列的表 TableTask:

TaskID, DesignID, TaskName

我想要 TaskName 一个特殊的列,它的自动编号取决于 DesignID,我想重复 .XXX部分,但每条记录仍然是唯一的,因为有 IDX 部分

ID1.001, ID1.002, ..., ID1.999
ID2.001, ID2.002

我已经尝试过类似下面代码中的内容,但我只能得到

ID1.001, ID1.002, ID1.003, ID2.004, ID2.005

我的代码:

CREATE TABLE TableTask
(
TaskID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
DesignID INT NOT NULL,
TaskName AS 'ID' + CAST(DesignID AS VARCHAR(6)) + '.' +
RIGHT('000' + CAST(TaskID AS VARCHAR(3)), 3) PERSISTED
)

最佳答案

您可以在查询时使用 row_number 执行此操作(带有变量的示例以便于测试):

declare @TableTask TABLE 
(
TaskID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
DesignID INT NOT NULL
)

insert into @TableTask values(1), (2), (1), (1), (2), (3), (4)

select *,
'ID' + CAST(DesignID AS VARCHAR(6)) + '.' + RIGHT('000' + convert(varchar(3), row_number() over (partition by DesignID order by TaskID)), 3) AS TasName
from @TableTask

输出:

1   1   ID1.001
3 1 ID1.002
4 1 ID1.003
2 2 ID2.001
5 2 ID2.002
6 3 ID3.001
7 4 ID4.001

关于sql - SQL Server 2012 特殊自定义增量列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48713112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com