【问题标题】:Add string to with zero to value in SQL Server在 SQL Server 中将字符串添加到零值
【发布时间】:2017-08-11 14:57:44
【问题描述】:

我有一个表,我想将一个值插入到一个唯一的列中,该列基本上由 3 个因素决定:

  1. 字符 R 开头
  2. 然后是自动增量值
  3. 然后 n 个零(取决于增量值)

例如:

  • 如果SELECT IDENT_CURRENT('Request');
    • 返回1 则为R0001
    • 返回121 那么它应该是R0121

到目前为止我尝试过的是

DECLARE @RequestUid NCHAR(5)
DECLARE @maxAutoIncrement INT

SET @maxAutoIncrement = IDENT_CURRENT('Request');
SET @RequestUid = CONCAT('R', '0000', @maxAutoIncrement)

INSERT INTO [dbo].[Request] ([RequestTitle], [RequestTypeId], [FromDate],[ToDate], 
                             [RequestDescription], [FormId], [UserId], 
                             [CreatedOn], [CreatedBy],[RequestUid])
VALUES (@RequestTitle, @RequestTypeId, @FromDate, @ToDate,
        @RequestDescription, @FormId, @UserId, 
        GETDATE(), @CreatedBy, @RequestUid)

此语句用于存储过程。

任何帮助将不胜感激。

【问题讨论】:

  • 请标记您的版本和数据库。看起来像 SQL 服务器。
  • 已添加.. 感谢您的关注

标签: sql stored-procedures sql-server-2012


【解决方案1】:

由于这被调用一次,我建议使用 format()

SET @RequestUid='R'+format(@maxAutoIncreament,'0000')

Format() 有一些很棒的功能,值得探索,但它不知道是一个执行者,应该谨慎使用。

编辑,如果您希望零的数量作为参数

Declare @n int = 4

SET @RequestUid='R'+format(@maxAutoIncreament,replicate('0',@n))

【讨论】:

    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 2010-12-09
    相关资源
    最近更新 更多