有一个数据字典表QM存储了一个城市的区名NAME,另外有一个字段值A以区名为开头,我想实现从该值中从数据找到对应的区名,该如何实现?我又下面的语句得到的记录为空:
SELECT NAME FROM QM WHERE QM IN '某某区某某街';     --假如字段值A的值为“某某区某某街”

解决方案 »

  1.   

    SELECT NAME FROM QM WHERE QM IN '某某区某某街';  ???QM 是表名,怎么带条件了要把表名做条件么?比较混乱
      

  2.   

    不能用like吧,因为QM总是比字段值A要长度短,也就是说QM的值包括在字段值A内
      

  3.   

     更正:
     不能用like吧,因为NAME总是比变量值(可能是我没说清楚,这个值是外部传入的一个变量)A要长度短,也就是说NAME的值包括在变量值A内 数据表QM的结构和数据如下:
     DM   NAME
     1    A区
     2    B区
     3    C区
     4    D区
     ...... 假如现在外部传入一个变量A,其值为“A区某某街某某号”,需要从数据表QM中找出NAME为A区的那条记录
     我的SQL语句为:
     SELECT NAME FROM QM WHERE QM IN 'A区某某街某某号'; 
     得到0个记录。
      

  4.   

    通过charindex函数实现了。如果想同样的功能在ACCESS中实现,如何写SQL语句,ACCESS中没有charindex函数
      

  5.   

    SELECT NAME FROM QM WHERE 区名 IN( '某某区某某街'); 
      

  6.   

    SELECT NAME FROM QM WHERE instr(1,name,'某某区某某街')>0--access
      

  7.   

    like是模糊查询,而in则是用来查询一组指定的值,此处如果你想查确切的地名的话,当让使用in比较好,在使用时语句为select * from .dbo where addrss in ('一号地名','二号地名','三号地名')查询时将查询出你的in括号中列举的值,like也可以是想以上功能,但其范围跟广。地名复杂时还会查出多余的数据,
      

  8.   

    谢谢,在ACCESS中用INSTR实现了想要的功能。