Действительно ли SQL Server может Вертеться, не зная получающихся имен столбцов?

У меня есть таблица, которая похожа на это:

Month      Site          Val
2009-12    Microsoft      10
2009-11    Microsoft      12
2009-10    Microsoft      13
2009-12    Google         20
2009-11    Google         21
2009-10    Google         22

И я хочу получить 2 таблицы измерений, которые дают мне "Val" в течение месяца каждого сайта, как:

Month      Microsoft      Google
2009-12        10           20
2009-11        12           21
2009-10        13           22

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

Все примеры кода я видел это, могли сделать, это потребовало меня к hardcode "Microsoft и Google" в тексте запроса.
Я видел тот, который не сделал, но он в основном фальсифицировал его путем списка Сайтов и генерации запроса на лету (concatting строка), который имел те имена столбцов в нем.

Разве там путь не состоит в том, чтобы заставить SQL Server 2008 делать это без взлома как этот?

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

Спасибо!
Daniel

12
задан Daniel Magliola 31 January 2010 в 00:17
поделиться

1 ответ

Примере вы связаны с использованием динамического SQL. К сожалению, нет другого встроенного метода для поворота в SQL Server, когда выходные колонны не известны заранее.

Если данные не слишком велики, это, вероятно, проще всего просто запустить обычный запрос строки из ASP.NET и выполнить свой поворот в код приложения. Если данные очень большие, то вам придется генерировать SQL динамически после первого запроса для возможных значений столбца.

Обратите внимание, что вам на самом деле не нужно писать оператор SQL, который генерирует динамический SQL; Вы можете просто генерировать SQL в ASP.NET, и это, скорее всего, будет намного проще. Просто не забудьте избежать различных значений .

6
ответ дан 2 December 2019 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: