欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql列轉行最簡單的方法

錢多多2年前9瀏覽0評論

MySQL中列轉行操作是數據處理的常見需求之一,它可以將原本縱向排列的數據變為橫向排列,方便查看和分析。以下是最簡單的兩種MySQL列轉行方法。

方法一:使用GROUP_CONCAT函數

該方法使用MySQL內置函數GROUP_CONCAT將相同列的數據進行拼接,從而使得原本的列變成一行。其基本語法如下:

SELECT 
id,
GROUP_CONCAT(salary SEPARATOR ',') AS salaries
FROM employees
GROUP BY id;

以上語句可以將如下表格:

id | salary |
|----|--------|
| 1  | 1000   |
| 1  | 1500   |
| 2  | 2000   |
| 2  | 2500

轉化為如下形式:

id | salaries     |
|----|--------------|
| 1  | 1000, 1500   |
| 2  | 2000, 2500

方法二:使用CASE WHEN語句

該方法使用MySQL內置語句CASE WHEN將每一列的值轉化為一行,從而達到列轉行的效果。其基本語法如下:

SELECT 
id,
MAX(CASE WHEN salary_num = 1 THEN salary END) AS salary_1,
MAX(CASE WHEN salary_num = 2 THEN salary END) AS salary_2,
MAX(CASE WHEN salary_num = 3 THEN salary END) AS salary_3
FROM (
SELECT 
id,
salary,
ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) AS salary_num
FROM employees
) AS temp
GROUP BY id;

以上語句可以將如下表格:

id | salary |
|----|--------|
| 1  | 1000   |
| 1  | 1500   |
| 1  | 2000   |
| 2  | 2500   |
| 2  | 3000

轉化為如下形式:

id | salary_1 | salary_2 | salary_3 |
|----|----------|----------|----------|
| 1  | 1000     | 1500      | 2000      |
| 2  | 2500     | 3000      | NULL

以上就是MySQL列轉行最簡單的兩種方法,具體選擇哪種方法應根據實際數據情況而定。