各位俺想要手工赋值一个字符串,让它参与排序 排在最后面如果是 int 类型,我就可以给这个字段赋值一个INT的最大值 就可以了,但如果是 nvarchar(5) 类型,我怎么搞一个最重的字符串呢?'ZZZ' 好像不是最重的啊,本来有个字段值  N'中国'
我想手工赋值一个 N'ZZZZZ'的记录,
但order by 之后,发现 ZZZZZ 没有排在SQL 结果集的最下面啊各位大侠,请帮忙啊
找一个“最重的字符串”,想让它参与排序,并下沉到最下面

解决方案 »

  1.   

    order by case when 'ZZZ' then 1 else 0 end asc,字段 asc
      

  2.   

    新增加一列RN,要沉底赋1,别的都赋0。  order by RN
      

  3.   

    create table tb(field1 varchar(10))
    insert into tb values('啊啊')
    insert into tb values('中国')
    insert into tb values('zzzzzz')
    insert into tb values('cc')select * from 
    tb
    order by case when field1='zzzzzz' then 1 else 0 end asc,field1 ascfield1
    ----------
    cc
    啊啊
    中国
    zzzzzz(4 行受影响)
      

  4.   

    比如有个表  只有一个字段mytab
    ------
       ID
       1
       2  我手工添加一条记录,让这条记录排到最下面,
      那么这条记录的ID字段就可以取 INT的最大值()但现在这个ID字段 是 nvarchar(5)的,
    怎么求得 nvarchar(5)字段的最大值?
      

  5.   

    可以先排序,然后结果集Union all select N'ZZZZ'
      

  6.   


    order by case when id=? then 1 else 0 end
      

  7.   

    各位本来表里有4条记录mytab
    ------------------------------
    ID啊啊
    中国
    zzzzzz
    ccselect *
    (select ID from mytab
    union 
    select ?AS ID ) A
    order by ID
    我想让?排在最后面,“?”是我想要得到的“最重的字符串”
    问题是“?”的值是多少
      

  8.   

    select ID
    (select 0 as num,ID from mytab
    union 
    select 1 as num, ? AS ID ) A
    order by num asc ,ID
      

  9.   

    如果ID 是int类型 就好办了,我就 让 “?”= Int的最大值
      

  10.   

    declare @t table(col nvarchar(15))
    insert @t select N'中国'
    insert @t select N'啊啊'
    insert @t select N'zzzzzz'
    insert @t select N'cc'select *
    from (
    select * from @t
    union all
    select N'座座座座座座' )
    t
     order by colcol             
    --------------- 
    cc
    zzzzzz
    啊啊
    中国
    座座座座座座(所影响的行数为 5 行)
      

  11.   


    '座座座座座座' 是最重的一个字符串吗?
    sql可以强制转换 $FFFFFFFFFF 成为一个字符串吗?十六进制的$FFFFFFFFFF应该可以排在最下面
      

  12.   


    何必转换呢 unicode 编码就行了 '座座座座座座' 就是最大的值
      

  13.   

    知道了,这个应该可以 select cast(0xFFFFFFFFFF as NVarchar)
      

  14.   

    不过 select cast(0xFFFFFFFFFF as NVarchar)好像还不对啊,SQL Server 好像是按 A..Z 汉语拼音排序的,不是字符的编码值排序的,郁闷啊
      

  15.   

    各位大侠cast(0xFFFFFFFFFF as NVarchar)好像还不对啊,SQL Server 好像是按 A..Z 汉语拼音排序的,不是按字符的编码值排序的,郁闷啊怎么解决???
      

  16.   

    if N'中国'< cast(0xFFFFFFFFFF as NVarchar)
      print 'Yes'
    else
      print 'No'他居然输出 NO,郁闷啊
      

  17.   

    ok,解决了,算了,不找“最重的字符串”了,字符串比较依赖于SQL SERVER 排序规则设置,
    另外添加一个int列来排序了
      

  18.   

    if convert(varbinary,N'中国')< 0xFFFFFFFFFF
    print 'Yes'
    else
    print 'No'Yes