- ORACLE :
- SELECT b.* , ROW_NUMBER () OVER ( PARTITION BY customer_name, dealer_code ORDER BY customer_no DESC) rank FROM tm_customer
- MYSQL:
- SELECT b.*, IF(@pdept = CONCAT(b.customer_name, b.dealer_code),@rank := @rank + 1,@rank := 1) AS rank,
- @pdept := CONCAT(b.customer_name, b.dealer_code),
- @rownum := @rownum + 1
- FROM
- (SELECT b.* FROM tm_customer b ORDER BY CONCAT(b.customer_name, b.dealer_code) ASC, customer_no DESC) b,
- (SELECT @rownum := 0,@pdept := NULL,@rank := 0) a
本文介绍在Oracle和MySQL中实现基于特定字段进行排序并为每条记录分配排名的方法。Oracle使用ROW_NUMBER()窗口函数,而MySQL则通过变量和子查询来完成类似的功能。
1557

被折叠的 条评论
为什么被折叠?



