有很多关于将行转换为各种数据库的列的帖子。它们似乎分为两个阵营,使用案例语句或使用数据库供应商的内置功能。我正在使用MySQL,到目前为止,还没有在任何内置函数上找到任何东西,这些函数可以让我以任意未知数量的行值为中心,我想将它们转换为列。如果我不提前知道这些值,我就无法构建在 stackoverflow 上经常出现的 CASE 查询。我想知道 MySQL 中是否有类似于其他数据库中的东西,它被称为交叉表或数据透视表:
-Postgresql: http
://www.postgresql.org/docs/current/static/tablefunc.html -Oracle:http
: //www.oracle-base.com/articles/11g/PivotAndUnpivotOperators_11gR1.php
-SQL Server: http: //msdn.microsoft.com/en-us/library/ms177410.aspx
只是为了确保我在说将行转为列时清楚我的要求,我想像这样转换一个表
user_id 键值
bob 头发 棕色
bob 眼睛 蓝色
jake 头发 brown
jake 身高 6'2"
进入这个:
user_id 头发 眼睛 身高
bob brown blue
jake brown 6'2"
我正在专门寻找MySQL中的解决方案,因此,如果有任何特定于数据库的新的或出现的您知道的可以解决此问题的东西,将不胜感激。