100米成績表(id,name,mark,rank);怎么實現排序輸出.比如:id name mark rank1 張三 12秒00 2 李四 11秒97 3 王五 13秒00怎么實現安排mark的順序輸出,并填入排名(rank)這種效果:1 李四 11秒97 12 張三 12秒0 23 王五 13秒00 3采納加分
2 回答

守著一只汪
TA貢獻1872條經驗 獲得超4個贊

慕尼黑8549860
TA貢獻1818條經驗 獲得超11個贊
select * from 百米成績表 order by mark asc
order by 的意思是排序,你的mark應該是一個字符串類型的字段(如果是oracle的話應該是varchar2) order by 跟的是一個字段,意思是按照這個字段進行排序,字符串的排序,會挨個比對第一個字符,然后第二個字符,然后以此類推,asc 是代表正序,就是小的在上,desc是倒序,
不過這里存在問題,如果秒數都是兩位數倒是好說,但是如果秒數是1位數 比如9秒00 那么在第二位排序的時候就會用秒字跟其他數字相比較,會出問題的,建議規范格式,強制要求秒數位數固定,或者干脆這個字段用數字來代替,比如11秒97,讓他秒數變成1197,數字比大小是不會出現問題的。
添加回答
舉報
0/150
提交
取消