一列中存放如下数据行:
8
20:8
20:8:10
16:8
12:8:10
使用sql语句如何根据输入的数字,查找出该列中最后一个字符对应该输入数字的行。
如:用户输入8,
查询出:
8
20:8
16:8 三行数据用户输入10,
查询出:
20:8:10
12:8:10 二行数据

解决方案 »

  1.   

    select * from table1 where col1 like '%10'
      

  2.   

    select * from 表 where 字段 like '%' + 用户的输入
      

  3.   

    select * from 表 where 字段 like '%???'
    ???处是你的查询关键字
      

  4.   

    select * from table1 where col1 like '%10' 这种无法规避如12:8:1010类似的数据行
      

  5.   

    对的这里需要使用到系统函数charindex substring灯
      

  6.   

    这个查询可以取出最后一个冒号后的数字(目前仅筛选出来记录为两个‘:’的数据,而且有的参数是给死的)
    所以仅是思路的表现
    如果想要做到足够完善
    需要把这个case改成类似循环那样的
    这样就可以筛选无论多少个':'了
    这个东西最好还是使用存储过程实现
    稍候……
    select 
    case charindex(':',AID,0)
    when 0 then AID
    else case charindex(':',substring(AID,charindex(':',AID,0)+1,4),0)
    when 0 then substring(AID,charindex(':',AID,0)+1,4)
    else case charindex(':',substring(substring(AID,charindex(':',AID,0)+1,4),charindex(':',substring(AID,charindex(':',AID,0)+1,4),0)+1,4),0)
     when 0 then substring(substring(AID,charindex(':',AID,0)+1,4),charindex(':',substring(AID,charindex(':',AID,0)+1,4),0)+1,4)
     else AID end
    end
    end
    from A