字段到列的动态数目

  • 本文关键字:动态 字段 mysql sql
  • 更新时间 :
  • 英文 :


我有这个数据库: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,通过三个步骤完成查询:

  1. 运行查询以查找有关目标列的信息
  2. 使用第一步中的信息,使用PIVOT、条件聚合、同一表的多个JOIN或其组合,动态构建复杂的新SQL语句
  3. 运行步骤2中的查询

您所追求的设计将要求您为几乎所有想要运行的查询跳过这些障碍。这将使应用程序的维护和开发更加复杂,使查询本身的执行速度变慢,最糟糕的可能是,这将破坏您有效索引数据的能力。

最新更新