台帐表   testTble字段数据如下:  id    NO(编号)
  1     2007
  2     2008
  3     2009
  4     2010
  5     2009-1
  6     2009-2
  7     2009-3
  8     2009-4
  9     2011
查询条件是根据编号的起始编号和结束编号
如:编号字段输入 2007和2009
    则输出:  1     2007
  2     2008
  3     2009又如:编号字段输入 2009-2和2009-4
    则输出:  6     2009-2
  7     2009-3
  8     2009-4其他同理。。
有点像日期(开始日期和结束日期的查询方式)
但这里的编号是有一定序列的nvarchar 类型。用sql语句或者存储过程算法都行。请高手指点啊。

解决方案 »

  1.   

    如果输入2009和2009-4 输出什么结果呢?
    "但这里的编号是有一定序列的nvarchar 类型"  "有一定序列"什么意思?
      

  2.   

    select * from testTble where No >= :start and No <= :end and length(no)=length(:start)
      

  3.   

    select * from testtable 
      where to_date(rpad(no,6,'-1'),'YYYY-MM')<=to_date(rpad(:end,6,'-1'),'YYYY-MM')
        and to_date(rpad(no,6,'-1'),'YYYY-MM')>=to_date(rpad(:start,6,'-1'),'YYYY-MM')
      

  4.   


    还需要修改,考虑到月份后面有可能是1位有可能2位
    rap(no,7,' -1')
    应该用这个,-1前有个空格