PostgreSQL 中的order by 1

PostgreSQL 中的order by 1

業務背景:在做一個業務的時候,需要通過某個計算列來進行排序。有一個分數,這個分數是由多個其他字段計算的一個結果集,沒有名稱,也不是表中的字段,所以不能直接使用它進行排序。

方法一、嵌套

可以在結果集外面在包裝一層,這樣計算列就有名稱了。


方法二、order by + 數字

SELECT tn_year,COALESCE(tn_sysscore,0) - COALESCE(tn_syslosescore,0) + COALESCE(tn_upscore,0) + COALESCE(tn_downscore,0),* FROM tn_performance 
WHERE 1 = 1
ORDER BY 1 DESC, 2 DESC

總結

計算列排序,使用不到索引,會涉及到表的整體掃描;影響性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章