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),''))
这个两个不懂
思考:还有其他的计算出排序列方法吗?