Sql server 从数值设置SQL Server 2005中的字符串格式

Sql server 从数值设置SQL Server 2005中的字符串格式,sql-server,tsql,sql-server-2005,Sql Server,Tsql,Sql Server 2005,如何格式化起始位置为D的字符串,长度小于4的数字的前导零。例如: D1000用于1000 D0100用于100 我曾尝试过使用casting和stuff函数,但没有达到预期效果 SELECT STUFF('D0000', LEN(@OperatingEndProc) - 2, 4, CAST((CAST(SUBSTRING(@OperatingEndProc, 2, 4) AS INT) + 1) AS VARCHAR(10))); 向该值添加10000将导致该数字首先有额外的零,然后将其

如何格式化起始位置为
D
的字符串,长度小于4的数字的前导零。例如:

  • D1000
    用于
    1000
  • D0100
    用于
    100
我曾尝试过使用casting和
stuff
函数,但没有达到预期效果

SELECT STUFF('D0000', LEN(@OperatingEndProc) - 2, 4, CAST((CAST(SUBSTRING(@OperatingEndProc, 2, 4) AS INT) + 1) AS VARCHAR(10)));

向该值添加10000将导致该数字首先有额外的零,然后将其强制转换为varchar,并且仅使用最后4个将忽略添加的10000。这要求所有数字都在0和9999之间

declare @value int = 100

select 'D' + right(cast(@value + 10000 as varchar(5)), 4)

当你想要获得正确的铸造实践时,这个插图板会派上用场

这将显示所有显式和隐式数据类型转换 允许使用SQL Server系统提供的数据类型。其中包括xml, bigint和sql_变量。赋值时没有隐式转换 从sql_变量数据类型,但存在到的隐式转换 sql_变体


你可以在这里下载它

效果很好。你能解释一下吗?这和我的问题有什么关系?