MySQL 将每第 N 列作为一个新行

标签 mysql sql

这就是我正在尝试做的事情。我想看看,根据一定的价格和成本,我的利润是多少。这是一个例子:

SELECT price, cost, profit, 
price-5 "price1", cost, price-5-cost "profit1"  
FROM table
WHERE product = blue_pants; 

这会输出如下数据:

price cost profit price1 cost profit1  

我希望它是这样的:

price  cost profit
price1 cost profit1 

这正是我所追求的数据显示方式。那有意义吗?有没有办法做到这一点。抱歉,我是一个 SQL 菜鸟。

最佳答案

Select price, cost, profit
From table
Where product = 'blue_pants'
Union All
Select price-5, cost, price-5-cost
From table
Where product = 'blue_pants'

这显然会重复行。为了知道哪些行应该出现在第一个查询中,哪些行应该出现在第二个查询中,我们需要知道条件(例如 Where Price-5 > 0)。

关于MySQL 将每第 N 列作为一个新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16928772/

相关文章:

php - 只为第一个查询行插入代码,然后什么都不插入

PHP 连接到 mySQL - 访问被拒绝

java - Mybatis中如何正确使用<foreach>语句

java - executeUpdate() 抛出 ArrayIndexOutOfBoundsException

sql - `jsonb_agg` 的嵌套聚合

java - 使用Prepared插入MySQL数据库

mysql - 喜欢...而不是...sql

sql - 有没有办法删除已经绑定(bind)到存储过程的用户定义表类型?

sql - 区分ß和ss的SQL查询

mySQL 如何在使用多个联接时通过特定 id 限制查询