Microsoft SQL 2008 форматирование строк - PullRequest
1 голос
/ 03 февраля 2012

Интересно, есть ли что-то в Microsoft SQL 2008, что может сделать то же самое в C #

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

    String.Format("ABC {0}  XYZ", i.ToString());

По сути, возможен ли String.Format () в MS SQL 2008?

Просто сделай это более понятным. Я хочу создать таблицу динамически, поэтому нужно сгенерировать строку для столбцов, как

"Col1 FLOAT, Col2 FLOAT. Col3 FLOAT"

Номер столбца задается переменной, поэтому мне интересно, есть ли функция для String.Format (), чтобы я мог использовать ее в цикле

В идеале я хочу написать хранимую процедуру и передать

"Col{0} Float"

Ответы [ 3 ]

2 голосов
/ 03 февраля 2012
Declare @variable INT
Declare @columnName varchar(50)
Declare @columnType varchar(10)

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

здесь иди. присвойте переменную своему значению int и запустите цикл, или вы можете создать этот цикл в sql. Я бы сделал это в SQL вместо того, чтобы идти туда-сюда. но это зависит от вашей логики.

0 голосов
/ 03 февраля 2012

Вы просто объединяете текст в столбец, чтобы использовать +:

SELECT "Employee Name" + EmployeeName AS EmployeeName FROM MyTable

Вы должны следить за использованием +, хотя в зависимости от типа данных, но всегда есть CAST и CONVERT, чтобы помочь вам привести типы данных к определенному типу.

0 голосов
/ 03 февраля 2012

Следующая версия имеет функцию FORMAT, или вы можете свернуть свою собственную функцию CLR в SQL Server 2008, которая вызывает методы форматирования .NET framework, но для вашего заявленного варианта использования я бы просто использовал что-то вродениже.

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, '')  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...