T-Sql Выбрать и объединить много строк и столбцов в одну строку и один столбец - PullRequest
4 голосов
/ 18 ноября 2011

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

Например, мои примерные данные и таблица выглядят следующим образом:

ColoumA INT
ColoumB INT
ColoumC NVARCHAR(MAX)

ColoumA  ColoumB  ColoumC
   1       1      ErrorMessage1
   2       2      ErrorMessage2
   3       3      ErrorMessage3

После успешного выполнения хранимой процедуры. Если Успешно, возвращаемый результат представляет собой строковое значение, объединяющее все детали, описанные выше. Например,

Или в другом Word, я хотел сохранить все значения в * 1008.*

в C # .net, когда я получаю вызов кода

String ReturnValue = "";
Datatable tbl = new Datatable(AREA);
ReturnValue = tbl.Rows[0][0].ToString().Trim();
Console.Writeline("Sample Output");
Console.Writeline(ReturnValue);

Я ожидал что-то вроде этого:

Sample Output
ColoumA: 1, ColoumB 1, ErrorMessage1
ColoumB: 2, ColoumB 2, ErrorMessage2
ColoumC: 3, ColoumC 3, ErrorMessage3

Могу ли я сделать выбор, используя T-Sql Устав?А если можно так сделать?как я могу получить это?

Надеюсь, кто-то может понять и ответить на мой вопрос.

Спасибо:

PS: Извините за плохой английский Объяснение

1 Ответ

3 голосов
/ 18 ноября 2011

Моя сильная рекомендация здесь будет: нет.Получите доступ к нему как к сетке (обычный SELECT) и выполняйте любую обработку на уровне своего приложения, например

var sb = new StringBuilder();
using(var reader = cmd.ExecuteReader()) {
  while(reader.Read()) {
    sb.Append("ColoumA: ").Append(reader.GetInt32(0))
      .Append(", Coloum B").Append(reader.GetInt32(1))
      .Append(", ").Append(reader.GetString(2)).AppendLine();
  }
}
string s  = sb.ToString();

Однако вы, вероятно, можете сделать это в TSQL через:

declare @result varchar(max) = ''
select @result = @result + 'ColoumA: ' + CONVERT(ColoumA, varchar(10)) +
          ', ColoumB ' + CONVERT(ColoumB, varchar(10)) + ', ' + ColoumC + '
' -- newline!
from ...

select @result

шаблон select @result = @result + ... в значительной степени соответствует тому, что вы описываете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...