2、案例分析1—要求
在數據庫表中有以下字符數據,如:
13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2
現在希望通過SQL 語句進行排序,并且首先要按照前半部分的數字進行排序,然后再
按照后半部分的數字進行排需,輸出要排成這樣:
13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2
數據庫表名:SellRecord;字段名:ListNumber;
案例分析2—分析
這是查詢語句,需要使用SELECT 語句
需要使用到ORDER BY 進行排序,并且在ORDER BY 的排序列中,也需要重新計算出排
序的數字來
前半部分的數字,可以從先找到“”
符號的位置,然后,取其左半部分,最后再使用Convert
函數將其轉換為數字:
Convert(int Left(ListNumber CharIndex(''
ListNumber)1))
后半部分的數字,可以先找到“”
符號的位置,然后把從第一個位置到該位置的全部字符
替換為空格,最后再使用Convert 函數將其轉換為數字:
select listnumber
from sellrecord
order by
convert(int,left(listnumber,charindex('-',listnumber)-1)),
convert(in,stuff(listnumber,charindex('-',listnumber),''))
這個兩個不懂
思考:還有其他的計算出排序列方法嗎?
1.讀萬卷書
2.行千里路
3.閱人無數