以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  sql中倒排序为什么1001或排在999的后面?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128104)

--  作者:happyft
--  发布时间:2018/11/28 20:20:00
--  sql中倒排序为什么1001或排在999的后面?
分页加数据时出现这个情况 ,下面是加载的sql语句,
SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY 生产单号 DESC ) AS RowNum ,
                    *
          FROM      生产单 a
          --WHERE     a.生产单号 = \'ZL1811-1001\'
        ) AS tb
WHERE   RowNum >= 1
        AND RowNum <= 30

上面的查询得到的是ZL1811-999,ZL1811-998这样的数据,而ZL1811-1001却没有了,而实际上是有这个数据的,加上where条件可以查到
倒排时要怎么样才能让ZL1811-1001在999的前面?

谢谢!


--  作者:HappyFt
--  发布时间:2018/11/28 20:26:00
--  
不要告诉我将原来3位数据的编号前面都加个0啊,这样的话,编号都是ZL1811-999这样类似的,而且辍都不一样,好多单据中都引用到啊,还好位数是固定的,可以按长度来判断,
应该还有其他方法吧

--  作者:有点色
--  发布时间:2018/11/28 20:37:00
--  

1、字符列排序,就是这样的没办法的;

 

2、你可以加补0进去,你也可以添加排序列;

 

3、没办法,只能,想办法把内容分割出来,或者补齐数据。