Sql server Microsoft sql 2008字符串格式

Sql server Microsoft sql 2008字符串格式,sql-server,string,sql-server-2008,format,Sql Server,String,Sql Server 2008,Format,我想知道在MicrosoftSQL2008中是否有什么东西可以在C中做类似的事情 for(int i = 0; i < 10; ++i) String.Format("ABC {0} XYZ", i.ToString()); 列的数目是由一个变量指定的,所以我想知道是否有一个函数可以执行String.Format,这样我就可以在循环中使用了 理想情况下,我想编写一个存储过程,然后传入 "Col{0} Float" 下一个版本有一个函数,或者您可以在SQLServer2008

我想知道在MicrosoftSQL2008中是否有什么东西可以在C中做类似的事情

for(int i = 0; i < 10; ++i)

    String.Format("ABC {0}  XYZ", i.ToString());
列的数目是由一个变量指定的,所以我想知道是否有一个函数可以执行String.Format,这样我就可以在循环中使用了

理想情况下,我想编写一个存储过程,然后传入

"Col{0} Float"
下一个版本有一个函数,或者您可以在SQLServer2008中运行自己的CLR函数,该函数调用.NETFramework格式化方法,但对于您所述的用例,我只使用如下内容

DECLARE @ColList varchar(max) = 
               (SELECT ',Col',number+0,' FLOAT'
                FROM   master..spt_values
                WHERE  type = 'P'
                       AND number BETWEEN 1 AND 10
                FOR XML PATH(''))

SELECT STUFF(@ColList, 1, 1, '')  

您只是将文本连接到列,以便可以使用+:

从MyTable中选择EmployeeName+EmployeeName作为EmployeeName

您必须注意使用+尽管这取决于数据类型,但始终有强制转换和转换来帮助您将数据类型强制转换为特定类型

Declare @variable INT
Declare @columnName varchar(50)
Declare @columnType varchar(10)

Select @columnName + CONVERT(varchar(10), @variable) + ' ' + @columnType
给你。将变量指定给int值并在循环中运行,也可以在sql中创建该循环。我将在sql中执行此操作,而不是来回执行。但这取决于你的逻辑

Declare @variable INT
Declare @columnName varchar(50)
Declare @columnType varchar(10)

Select @columnName + CONVERT(varchar(10), @variable) + ' ' + @columnType