有一张表 ID 是string 类型.
我现在有一个ID 我要根据这个ID 查询出这个ID 和他之前的数据!
求高人解答!

解决方案 »

  1.   

    id是string ,那么你要找到这个id的规律,这样才能查之前的数据
      

  2.   


    select * from 表 where cast(ID as int) <= cast(你的ID as int)
      

  3.   

    你的这个string型的ID是数字字符串不是??
    是的话,就好办了,将string转型成int的,然后比较取出<=ID的值即可。
      

  4.   

    这个是ID “obj_20110530105944dj80 ” 中的其中一个
      

  5.   


    从这里可以看出fCreateDate字段的必要性了吧!
    如果这个ID是字母+数字的组合,那么你可能需要把字母部分先替换掉,再比较数字部分。
      

  6.   

    ID既然设计成这样,肯定有它的规律可言,把这个ID的规律列出来看看。
      

  7.   

    可以用游标,要花点时间看一下
    如果楼主不想花时间去学的话,可以把表按照这个ID排序,
    (如果你要的数据是在当前记录前面的话,那你在把这个表DESC一下,)
    用DATAREADER去读取,读取到当前行的下一行,返回就OK了
      

  8.   

    obj_20110530105944dj80应该是"obj_yyyyMMddHHmmssdj80"
    可以比较中间的一段时间串。select * from tableName where cast(substring([ID], 5, 16) as double)<=cast(substring(@ID, 5, 16) as double)
      

  9.   

    是索引大于之前的还是说日期大于之前的???
    如果是日期的话 order by就行了啊
      

  10.   

    截取出来的字符串转为 datetime 是报错!
      

  11.   

    select * from 表 where convert(ID,int) <= convert(你的ID,int)