mysql 字段重量第一计费区间价格到重量第十计费区间价格从高到低横向排序
时间: 2023-08-13 12:03:57 浏览: 76
SQL 按特定字段值排序
要实现 MySQL 数据库中的字段重量第一计费区间价格到重量第十计费区间价格从高到低的横向排序,可以使用 PIVOT 操作。假设你有一个名为 `table1` 的表格,包含了多个字段,包括 `weight`、`price1`、`price2`、`price3` 等。可以使用以下 SQL 语句来实现:
```
SELECT weight,
MAX(CASE WHEN seq = 1 THEN price ELSE NULL END) AS price1,
MAX(CASE WHEN seq = 2 THEN price ELSE NULL END) AS price2,
MAX(CASE WHEN seq = 3 THEN price ELSE NULL END) AS price3,
...
FROM (
SELECT weight, price, seq
FROM table1
UNPIVOT (
price FOR seq IN (price1, price2, price3, ...)
) AS unpvt
) AS t
GROUP BY weight
ORDER BY price1 DESC, price2 DESC, price3 DESC, ...;
```
在上面的 SQL 语句中,使用 `UNPIVOT` 操作将列数据转换为行数据,并使用 `CASE` 语句将行数据转换为列数据。`GROUP BY` 子句用于将数据按照 `weight` 进行分组。`ORDER BY` 子句用于将数据按照 `price1`、`price2`、`price3` 等字段从高到低排序。
阅读全文