select top 1 lydid from lyd where len(LTRIM(RTRIM(lydid))) =(
select max(len(LTRIM(RTRIM(lydid)))) from lyd where len(LTRIM(RTRIM(lydid))) <  10
)   and len(LTRIM(RTRIM(lydid))) <  10
 order by len(LTRIM(RTRIM(lydid))),lydid desc

解决方案 »

  1.   

    SQL数据库字符类型字段写入的是数字,我想取出现有的小于十位数的数值最大的数。出现有的小于十位数的数值最大的数 这句的意思要是说值小于10且是最大的那:SELECT MAX(lydid) AS lydid FROM lyd WHERE lydid < 10出现有的小于十位数的数值最大的数 要是指的是长度小于10的话SELECT MAX(lydid) AS lydid FROM lyd WHERE len(lydid) < 10
      

  2.   

    SQL数据库字符类型字段写入的是数字,我想取出现有的小于十位字符的长度数值最大的数。出现有的小于十位数的数值最大的数 要是指的是长度小于10的话SELECT MAX(lydid) AS lydid FROM lyd WHERE len(lydid) < 10我用MAX()不行,当有99 100时取出的是99
    如果 lydid 为 99 100 ,
    时我想取 100 ,
    可用 SELECT MAX(lydid) AS lydid FROM lyd 取出的是99
      

  3.   

    select max(convert(bigint,lydid ))  from b where len(lydid)<10
      

  4.   

    select max(cast(lydid as int)) as lydid from b where len(lydid)<10