中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

mysql行轉列的方法有哪些

小億
85
2024-01-26 09:45:52
欄目: 云計算

在MySQL中,可以使用以下方法將行轉列:

  1. 使用CASE語句:使用多個CASE語句將多行數據轉換為單行。每個CASE語句對應一個列,并根據條件將數據填充到對應的列中。例如:
SELECT 
  id,
  MAX(CASE WHEN type = 'A' THEN value END) AS value_a,
  MAX(CASE WHEN type = 'B' THEN value END) AS value_b,
  MAX(CASE WHEN type = 'C' THEN value END) AS value_c
FROM table_name
GROUP BY id;
  1. 使用JOIN操作:將多個表連接在一起,并根據條件將對應的數據填充到對應的列中。例如:
SELECT 
  t1.id,
  t2.value AS value_a,
  t3.value AS value_b,
  t4.value AS value_c
FROM table_name t1
JOIN table_name t2 ON t1.id = t2.id AND t2.type = 'A'
JOIN table_name t3 ON t1.id = t3.id AND t3.type = 'B'
JOIN table_name t4 ON t1.id = t4.id AND t4.type = 'C';
  1. 使用GROUP_CONCAT函數:將多行數據連接為一個字符串,并使用GROUP_CONCAT函數將多個字符串轉換為一行中的多個列。例如:
SELECT 
  id,
  SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN type = 'A' THEN value END), ',', 1) AS value_a,
  SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN type = 'B' THEN value END), ',', 1) AS value_b,
  SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN type = 'C' THEN value END), ',', 1) AS value_c
FROM table_name
GROUP BY id;

這些方法可以根據具體的需求選擇適合的方式來將行轉列。

0
永春县| 胶南市| 鄂伦春自治旗| 柞水县| 武威市| 成武县| 保康县| 井陉县| 遂溪县| 永清县| 洛南县| 昌平区| 昆山市| 桐梓县| 博湖县| 涞源县| 兰西县| 广饶县| 沙洋县| 北安市| 柘荣县| 肥西县| 扎鲁特旗| 宿松县| 武清区| 布尔津县| 岐山县| 安仁县| 河津市| 元阳县| 丽江市| 阿尔山市| 康马县| 苏尼特左旗| 托里县| 红安县| 昌图县| 威远县| 苗栗县| 横峰县| 昭通市|