溫馨提示×

mysql動態行轉列怎么實現

小億
198
2024-03-28 10:04:00
欄目: 云計算

在MySQL中將動態行轉列可以使用GROUP_CONCAT函數以及動態SQL語句來實現。以下是一個示例代碼:

假設有一個表格名為data,包含以下數據:

id name value
1 attribute1 10
1 attribute2 20
2 attribute1 15
2 attribute2 25

要將這些數據按照id進行行轉列,可以使用以下SQL語句:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'MAX(CASE WHEN name = ''',
      name,
      ''' THEN value END) AS ',
      name
    )
  ) INTO @sql
FROM data;

SET @sql = CONCAT('SELECT id, ', @sql, ' FROM data GROUP BY id');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

運行以上代碼后,將獲得以下結果:

id attribute1 attribute2
1 10 20
2 15 25

這樣就實現了將動態行轉列的功能。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女