MySQL中的UNPIVOT是一種將多列轉(zhuǎn)換為單列的技術(shù)。這往往用于在一個表中合并數(shù)據(jù)。
下面是一些示例代碼來展示如何使用MySQL的UNPIVOT功能:
SELECT id, indicator, value FROM ( SELECT id, col1, col2, col3 FROM my_table ) t UNPIVOT ( value FOR indicator IN (col1, col2, col3) ) u ;
上面的代碼將my_table表中的col1、col2和col3列匯總到value列中。
在UNPIVOT語句中,我們首先指定輸出的列名,然后指定要UNPIVOT的列并為它們指定別名。最后指定數(shù)據(jù)集。
我們還可以使用UNION ALL命令來將列轉(zhuǎn)換為單個列。例如:
SELECT id, 'col1' as indicator, col1 as value FROM my_table UNION ALL SELECT id, 'col2' as indicator, col2 as value FROM my_table UNION ALL SELECT id, 'col3' as indicator, col3 as value FROM my_table ;
上述代碼使用UNION ALL將my_table表中的col1、col2和col3列壓縮成單個列。
總之,MySQL的UNPIVOT功能是一種將多列轉(zhuǎn)換為單列的技術(shù),并且我們可以使用不同的方法來實現(xiàn)它。