SQL Server中的类似函数到c#中的string.format

时间:2014-10-02 19:51:09

标签: c# sql sql-server tsql sql-server-2005

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

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

结果将是:C007

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

4 个答案:

答案 0 :(得分:3)

在直接的TSQL中,没有像C#string.format那样强大的功能。 CONVERT()函数提供了一些有限的格式,但对于它无法处理的任何东西,你必须编写自己的函数。谷歌“SQL字符串函数”,以查看您的SQL库中的工具。

答案 1 :(得分:2)

使用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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我会使用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