mysql 有数据字段如下:实际重量,重量第一计费区间价格,重量第一计费区间值,重量第二计费区间价格,重量第二计费区间值,直到第十。根据实际重量判断再哪个计费区间值取区间价格
时间: 2024-03-02 22:48:34 浏览: 162
根据你所提供的信息,我可以给出以下 SQL 查询语句,可以根据实际重量判断在哪个计费区间,并且取对应的区间价格:
```
SELECT
CASE
WHEN 实际重量 <= 重量第一计费区间值 THEN 重量第一计费区间价格
WHEN 实际重量 <= 重量第二计费区间值 THEN 重量第二计费区间价格
-- 继续添加条件,直到第十个计费区间
ELSE 0 -- 如果实际重量大于所有计费区间值,则返回 0,或者其他默认值
END AS 区间价格
FROM 数据表名
WHERE 其他条件; -- 可以添加其他查询条件,如订单编号、时间等
```
需要注意的是,上述查询语句中的 `数据表名` 和 `其他条件` 需要替换为对应的数据表名和查询条件。另外,如果有需要,可以根据实际情况调整查询语句中的计费区间数量和区间判断条件。
相关问题
mysql 字段重量第一计费区间价格到重量第十计费区间价格从高到低排序
这是一段 SQL 语句,用于对 MySQL 数据库中的表进行操作。具体来说,这段语句的功能是查询表中所有记录,并按照字段重量第一计费区间价格到重量第十计费区间价格从高到低的顺序进行排序。SQL 语句如下:
```
SELECT * FROM 表名 ORDER BY 字段重量第一计费区间价格 DESC, 字段重量第二计费区间价格 DESC, 字段重量第三计费区间价格 DESC, 字段重量第四计费区间价格 DESC, 字段重量第五计费区间价格 DESC, 字段重量第六计费区间价格 DESC, 字段重量第七计费区间价格 DESC, 字段重量第八计费区间价格 DESC, 字段重量第九计费区间价格 DESC, 字段重量第十计费区间价格 DESC;
```
其中,`表名` 需要替换为你所操作的表的名称,`字段重量第一计费区间价格` 到 `字段重量第十计费区间价格` 需要替换为实际的字段名称。`DESC` 表示降序排列,如果需要升序排列,则可以使用 `ASC`。
mysql 字段重量第一计费区间价格到重量第十计费区间价格从高到低横向排序
要实现 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` 等字段从高到低排序。
阅读全文