本文主要是介绍MySQL--case语句 简单明了,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CASE语句回顾:
· case语句格式一
CASE input_expressionWHEN expression1 THEN result_expression1WHEN expression2 THEN result_expression2[...n]ELSE result_expressionEND
CASE后面有表达式时,将CASE后的表达式的值与各WHEN子句的表达式值比较,如果相等,则执行THEN后面的表达式或语句,然后跳出CASE语句;否则,返回ELSE后面的表达式。
· case语句格式二
CASEWHEN expression1 THEN result_expression1WHEN expression2 THEN result_expression2[...n]ELSE result_expressionEND
CASE后面没有表达式时,多个WHEN子句中的表达式依次执行,如果表达式结果为真,则执行相应THEN关键字后面的表达式或语句,执行完毕之后跳出CASE语句。如果所有WHEN语句都为FALSE,则执行ELSE子句中的语句。
小tips:在交换数据和列转行时可以考虑使用case语句
代码实例
SELECT stock_name,SUM(CASE operationWHEN 'sell' THEN price ELSE -price END ) AS capital_gain_loss
FROM Stocks
GROUP BY stock_name
selectstock_name,sum(casewhen operation = 'Buy' then -pricewhen operation = 'Sell' then priceend) as capital_gain_loss
from stocks
group by stock_name
(为了让你们更好的理解,所以一段SQL写了两种不同的表达方式)
这段SQL 查询计算每个股票(stock_name)的总资本收益/损失(capital_gain_loss)。对于每个股票,它会将所有的卖出(operation='sell')操作的价格(price)相加,并将所有的买入(operation='buy')操作的价格取相反数后相加。最终的结果以股票名称(stock_name)进行分组。
这篇关于MySQL--case语句 简单明了的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!