我有这个数据库:http://sqlfiddle.com/#!9/19c1f66/16
我想为某个DataEntry(在本例中为id为1的DataEntry(生成这样的输出:
RowId | field1 | field2 | field3 | field4
1 | value_field1 | value_field2 | value_field3 | value_field4 |
我试过使用数据透视表,但我不知道如何正确地使用它。
SQL语言有一个非常严格且牢不可破的规则,要求您在查看表中的任何数据之前,必须知道查询返回的列数。
唯一的解决方法是使用动态SQL,通过三个步骤完成查询:
- 运行查询以查找有关目标列的信息
- 使用第一步中的信息,使用PIVOT、条件聚合、同一表的多个JOIN或其组合,动态构建复杂的新SQL语句
- 运行步骤2中的查询
您所追求的设计将要求您为几乎所有想要运行的查询跳过这些障碍。这将使应用程序的维护和开发更加复杂,使查询本身的执行速度变慢,最糟糕的可能是,这将破坏您有效索引数据的能力。