SQL Server中类似于c#中字符串格式的函数

本文关键字:格式 字符串 函数 Server 类似于 SQL | 更新日期: 2023-09-27 18:25:20

在C#中,如果我这样做:

string code = string.format("C{0:000}", 7);

结果将是:C007

SQL Server中是否有执行相同操作的函数?还是我必须自己创建一个函数?

SQL Server中类似于c#中字符串格式的函数

使用FORMATMESSAGE()函数。

SELECT FORMATMESSAGE('This is the %s and this is the %s.', 'first variable', 'second variable') AS Result; 

https://msdn.microsoft.com/en-us/library/ms186788.aspx

在直接TSQL中,没有什么比C#字符串格式更强大了。CONVERT()函数提供了一些有限的格式,但对于它无法处理的任何内容,您必须编写自己的函数。谷歌"SQL字符串函数",看看你的SQL库中有什么工具。

我会使用REPLICATE和RIGHT

'C' + RIGHT(REPLICATE('0', <Padding Amount Here>) + CAST(7 AS NVARCHAR(10)), <Padding Amount Here>)

用法:

'C' + RIGHT(REPLICATE('0', 10) + CAST(7 AS NVARCHAR(10)), 10)

生成以下内容:

C0000000007

SELECT 'C' + RIGHT('00' + CONVERT(varchar(3),7),3)