SQL - 我如何创建一个旋转视图和现有 table

SQL - How do I create a view that pivots and existing table

我有一个 Table 用于用户创建的表单上的动态字段:

Table 的格式如下:

ID  | FIELD NAME 
-------------------
1   | Gross Gallons

为了与其他表形成连接,我需要创建一个如下所示的视图

ID_1 
------------
Gross Gallons

如有任何帮助,我们将不胜感激

谢谢

这是制作动态字段的简单方法。

给定 table:

mysql> select * from dyna_field;

+------+---------------+
| id   | field_name    |
+------+---------------+
|    1 | Gross Gallons |
|    2 | Net Gallons   |
|    3 | Total         |
+------+---------------+

进行动态查询:

select 
  group_concat(concat('(case when id = ', id, ' then field_name else "" end) as ID_', id, ' ')) into @sql_case
from dyna_field 
join(SELECT @sql_case:='') c;

set @sql_case = concat('select ', @sql_case, ', 1 as uid from dyna_field;');

prepare statement FROM @sql;

execute statement;

+---------------+-------------+-------+-----+
| ID_1          | ID_2        | ID_3  | uid |
+---------------+-------------+-------+-----+
| Gross Gallons |             |       |   1 |
|               | Net Gallons |       |   1 |
|               |             | Total |   1 |
+---------------+-------------+-------+-----+