sql关系使用with / without pivot来显示动态列

时间:2011-05-03 13:07:23

标签: asp.net sql sql-server sql-server-2005

我有一个如下表结构:

表名: 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 个答案:

答案 0 :(得分:2)

SQL Server没有任何东西(据我所知)可以转向动态数量的列。

此外,您会发现不同的列需要不同的名称,因此需要一种动态命名列的机制。


你可能得到的最接近的是编写一些编写SQL然后执行它的SQL。我当然不想走那条路。

在我看来,更好的方法是在您的客户端中转移数据。作为一般原则,我尝试不处理SQL Server上的格式化/布局/表示问题。我发现最好只是确保提供的结果提供完整,准确和一致的信息,以便使应用程序能够按照自己的意愿行事。

(这使得您的SQL能够以与其使用无关的方式与数据相关。这意味着对应用程序的更改不太可能需要更改SQL。)