2012-06-08 24 views
6

Bazı çiftler içeren bir PostgreSQL tablom var, bunlar ön gerilimleri depolar. o yüzden sütunları diyelim: İstediğim bu iki sütun hangisi azalan yüksek miktarı vardır ve daha sonra diğer bir sütuna göre, yine azalan tarafından sipariş etmektirİki sütun en yüksek değeriyle SQL siparişi

pc_1 
pc_2 

. Bizim veridir Yani eğer

derler:

<something tarafından mytable düzenden *
id pc_1 pc_2 
1 12.5 11.0 
2 10.0 13.2 
3 13.2 9.0 

seçeneğini> verecekti:

2 10.0 13.2 
3 13.2 9.0 
1 12.5 11.0 

cevap

16
SELECT * 
FROM mytable 
ORDER BY 
     GREATEST(pc_1, pc_2) DESC, LEAST(pc_1, pc_2) DESC 
+0

Ha, emin Yani en büyük cevapsız ve En azından tüm bu yıllar. Teşekkürler! –

+1

"GREATEST" ve "LEAST" standart SQL olmadığına dikkat edin. – Charles

4
select * 
from mytable 
order by 
case when pc_1 > pc_2 then pc_1 else pc_2 end desc, 
case when pc_1 > pc_2 then pc_2 else pc_1 end desc 
İlgili konular