SQL отношение с использованием / без оси для отображения динамических столбцов - PullRequest
2 голосов
/ 03 мая 2011

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

Имя таблицы: questionsTable и дата выглядит как

 qid      qName
  1        Enter your licence number.
  2        What is your favaorite sport.
  3        Enter your attendee name

Другое имя таблицы: tbl_Answer и данные выглядят как

qid    attendeeid    Answer
 1       2349         45645645
 2       2349         Cricket
 3       2350         James
 2       2350         Chess
 1       2350         858585

Теперь я хочу, чтобы мой вывод выглядел так:

attendeeid   questionlable            answer     questionlable                 answer    questionlable          answer     
  2349        Enteryourlicencenumber  45645645   Whatisyourfavaoritesport      Cricket
  2350        Enteryourlicencenumber  858585     What is your favaorite sport  hockey   Enteryourattendeename  James

Здесь я хочу отобразить динамическую метку вопроса, потому что здесь я взял 3 qid.

1 Ответ

2 голосов
/ 03 мая 2011

SQL Server не имеет ничего (насколько я знаю), которое может поворачиваться к динамическому количеству столбцов.

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


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

На мой взгляд, лучший подход - это поворот данных в вашем клиенте. Как правило, я стараюсь не заниматься вопросами форматирования / размещения / представления на SQL Server. Я считаю, что лучше просто обеспечить, чтобы представленные результаты давали полную, точную и согласованную информацию, чтобы приложение могло делать то, что оно хочет.

(Это позволяет вашему SQL относиться к данным не зависимо от их использования. Это означает, что изменения в приложении с меньшей вероятностью потребуют изменений в SQL.)

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