溫馨提示×

mysql行轉列的實現方式有哪些

小億
151
2024-01-29 09:59:40
欄目: 云計算

MySQL行轉列的實現方式有以下幾種:

  1. 使用CASE語句:通過使用CASE語句可以根據條件將行數據轉換為列數據。
SELECT
    id,
    MAX(CASE WHEN attribute = 'attribute1' THEN value END) AS attribute1,
    MAX(CASE WHEN attribute = 'attribute2' THEN value END) AS attribute2,
    MAX(CASE WHEN attribute = 'attribute3' THEN value END) AS attribute3
FROM
    table
GROUP BY
    id;
  1. 使用PIVOT函數:MySQL并沒有內置的PIVOT函數,但是可以使用子查詢和聚合函數來模擬實現。
SELECT
    id,
    MAX(CASE WHEN attribute = 'attribute1' THEN value END) AS attribute1,
    MAX(CASE WHEN attribute = 'attribute2' THEN value END) AS attribute2,
    MAX(CASE WHEN attribute = 'attribute3' THEN value END) AS attribute3
FROM
    (SELECT id, attribute, value FROM table) AS t
GROUP BY
    id;
  1. 使用GROUP_CONCAT函數:可以使用GROUP_CONCAT函數將多個行數據合并為一個字符串,然后再使用子查詢將字符串拆分為多個列。
SELECT
    id,
    SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN attribute = 'attribute1' THEN value END), ',', 1) AS attribute1,
    SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN attribute = 'attribute2' THEN value END), ',', 1) AS attribute2,
    SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN attribute = 'attribute3' THEN value END), ',', 1) AS attribute3
FROM
    table
GROUP BY
    id;

以上是幾種常見的MySQL行轉列的實現方式,可以根據實際需求選擇適合的方式。

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