码迷,mamicode.com
首页 > 数据库 > 详细

sql 1.1 1.1.1 1.10.1 排序

时间:2017-11-13 21:21:07      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:pre   charindex   排序   add   function   序号   cti   string   sequence   

解决思路:计算每位的权重,得到序号完整的权重值,使用权重值进行排序!

创建sql 函数如下:

ALTER FUNCTION [dbo].[SequenceToOrderNum] ( @Sequence VARCHAR(50) )
RETURNS INT
    BEGIN
        DECLARE @Count INT
        DECLARE @OrderNum INT 
        SET @Count = 6 --根据需求改变
        SET @OrderNum = 0
        WHILE CHARINDEX(., @Sequence) > 0
            BEGIN
                SET @OrderNum = @OrderNum
                    + CAST(SUBSTRING(@Sequence, 0, CHARINDEX(., @Sequence)) AS NUMERIC)
                    * POWER(20, @Count)--根据需求改变
                    
                SET @Sequence = SUBSTRING(@Sequence,
                                          CHARINDEX(., @Sequence) + 1,
                                          LEN(@Sequence))
                                                
                SET @Count = @Count - 1
            END
          
        SET @OrderNum = @OrderNum + CAST(@Sequence AS NUMERIC) * POWER(20,---根据需求改变
                                                              @Count)
        RETURN @OrderNum

    END


 --结果: 3.3.1.3.1=>201784400

sql 1.1 1.1.1 1.10.1 排序

标签:pre   charindex   排序   add   function   序号   cti   string   sequence   

原文地址:http://www.cnblogs.com/mengkai/p/7827662.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!