2015-09-22 110 views
1

我想根據他們到學校的距離訂購一些學生的詳細信息。但首先在(80-90)公里的範圍內。剩下的學生將被顯示。 (選擇student_name,從學生距離...........) 例如:按語句排序的SQL順序

  • 哈拉,88.2公里
  • Nimal,86.1公里
  • 格塔,82.5公里
  • 佩雷拉,92.3公里
  • 拉尼,23.1公里
  • 沙市,102.4公里

有人可以幫我解決這個問題。

+5

提供DBMS和所需的輸出。 –

+1

我不明白你的特殊情況,首先在80-90公里內,然後剩下的學生。這是否意味着70公里外的學生應該在80公里外的學生之後?但是,只存儲整數(或小數)值,但不包括'km'。 –

+1

您可能需要選擇(80-90)列表和不是(80-90)列表,單獨排列它們,最後選擇兩個列表。 – daniel

回答

0
SELECT ..., ROUND(distance/10, 0) AS lakhm, ... 
... 
ORDER by lakhm 

這假設你的SQL版本有一個ROUND處理表達式。只有我相信正式標準才需要列名。我懷疑它是否有效,但ROUND(distance, -1)應該具有相同的效果。

+0

感謝您的幫助 –

3

爲了率先拿到了80-90公里的距離,使用CASE構造:

ORDER BY 
    CASE WHEN distance BETWEEN 80 AND 90 THEN 0 ELSE 1 END, 
    distance; 

這將讓你這個命令:

 
Geetha 82.5 km 
Nimal  86.1 km 
kamal  88.2 km 
Rani  23.1 km 
Perera 92.3 km 
Shashi 102.4 km 

一是80-90公里開頭82.5以88.2結尾,其他距離以23.1以102.4結尾。

+0

感謝Thorsten,它適合我。 –