select row_number() over(partition packcode order by score desc),packname from T_pack;
我的sql中需要按packcode 磁區然后按分數score 降序排序后獲取順序號。但是如果score 是0的情況下,不參與排序,請問如何修改這個sql.
我使用下面寫法,沒生效。
select row_number() over(partition packcode order by case when score >0 then score else null end ),packname from T_pack;
uj5u.com熱心網友回復:
select row_number() over(partition packcode order by score desc),packname from T_pack WEHRE SCORE>0;不行嗎uj5u.com熱心網友回復:
不行,因為我需要所有資料,只是score=0的不參與排序。uj5u.com熱心網友回復:
不參與排序,那這些行,怎么顯示?uj5u.com熱心網友回復:
這些行排序列null即可。uj5u.com熱心網友回復:
把這列重新格式化成另外一個排序欄位,然后按照這個欄位來排序就可以了uj5u.com熱心網友回復:
select row_number() over(partition packcode order by score desc),packname from T_pack WEHRE SCORE!=0UNION ALL
SELECT NULL,packname from T_pack WEHRE SCORE=0
可以嗎?
uj5u.com熱心網友回復:
partition后面不接by也可以運行么轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/90762.html
標籤:基礎和管理
上一篇:求sql陳述句,謝謝!
下一篇:詢問一個SQL陳述句
