gpt4 book ai didi

sql - 如何在 SQL Server 2008 的结果表中递增和格式化整数?

转载 作者:行者123 更新时间:2023-12-01 07:18:20 24 4
gpt4 key购买 nike

我已经阅读了许多与此问题相关的帖子,但不幸的是,没有一个建议的解决方案对我有用。

我正在尝试设置一个 SQL 语句,该语句将在我的结果表中创建一个列,其值的格式如下:

日期 + 8 位数字,每条新记录加 1,并以前导零为前缀。

换句话说,我想要一列包含以下格式的数据:

    2015061000000001
2015061000000002
2015061000000003
2015061000000004
2015061000000005
...

我尝试使用 row_number()以及一个局部变量,但我没有太多运气让它起作用。

这是我到目前为止:
    declare @a int;
set @a = 1;

select
'aaa',
(select (CONVERT(VARCHAR(10),GETDATE(),112)) + RIGHT('0000000'+ CONVERT(VARCHAR,2),8)),
row_number() over(order by id),
(select (CONVERT(VARCHAR(10),GETDATE(),112)) + RIGHT('0000000'+ CONVERT(VARCHAR, ( row_number() over(order by id) )),8)),
(select (CONVERT(VARCHAR(10),GETDATE(),112)) + RIGHT('0000000'+ CONVERT(VARCHAR, ( select @a + 1 )),8))
FROM MY_TABLE

结果表:
    aaa | 2015061000000002 | 1 | 2015061000000001 | 2015061000000002
aaa | 2015061000000002 | 2 | 2015061000000001 | 2015061000000002
aaa | 2015061000000002 | 3 | 2015061000000001 | 2015061000000002
aaa | 2015061000000002 | 4 | 2015061000000001 | 2015061000000002
aaa | 2015061000000002 | 5 | 2015061000000001 | 2015061000000002
aaa | 2015061000000002 | 6 | 2015061000000001 | 2015061000000002
aaa | 2015061000000002 | 7 | 2015061000000001 | 2015061000000002
aaa | 2015061000000002 | 8 | 2015061000000001 | 2015061000000002

任何人都可以请教如何退还这个?
    2015061000000001
2015061000000002
2015061000000003
2015061000000004
2015061000000005
...

谢谢!

最佳答案

你在正确的道路上,只需要一点点插入......
尝试这个:

SELECT CONVERT(varchar(10), GETDATE(), 112) + 
RIGHT('0000000'+
CAST( ROW_NUMBER() OVER(ORDER BY t_Id) As varchar(8))
,8)
FROM MY_TABLE

关于sql - 如何在 SQL Server 2008 的结果表中递增和格式化整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30756413/

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