mysql行轉列(多行轉一列)


場景

  比如說一個訂單對應多條數據,當狀態(status)=1的時候,  數量(num)=25,當狀態(status)=2的時候,  數量(num)=45,現在想用一條sql記錄下不同狀態對應的數量為多少,如下圖所示:

  

  期待結果->

  

sql語句示例 

SELECT trades_id,
MAX(CASE WHEN apply_status=1 THEN pay_change ELSE 0 END) 'num_status1',
MAX(CASE WHEN apply_status=2 THEN pay_change ELSE 0 END) 'num_status2'
FROM b_balance_detail
WHERE site_id=100190 
AND apply_status!=4 AND trades_id = 1001901531475622312 
//上述sql是查詢了一個訂單的情況,當多個時應當加個group by進行分組查詢 如下:
SELECT trades_id,
MAX(CASE WHEN apply_status=1 THEN pay_change ELSE 0 END) 'num_status1',
MAX(CASE WHEN apply_status=2 THEN pay_change ELSE 0 END) 'num_status2'
FROM b_balance_detail 
group by trades_id

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM