表结构 table1
bankname bankcode  area 
农业银行 0000001 上海 
农业银行 0000002 北京 现在得到文本"上海农业银行",需要查询出"0000001".请问各位,sql该怎么写?给个思路也行。。

解决方案 »

  1.   


    select bankcode from table1
    where area||bankname like'%上海农业银行%'
      

  2.   


    SQL> 
    SQL> with table1 as
      2  (
      3  select '农业银行' bankname, '0000001' bankcode,'上海' area from dual
      4  )
      5  select bankcode from table1 where area||bankname='上海农业银行'
      6  ;BANKCODE
    --------
    0000001SQL> 
      

  3.   

    类似这样的意思啊。。
    select bankcode from table1 where '上海农业银行' like  bankname
      

  4.   

    可以分别对同一文字列针对两个不同的字段进行两次LIKE 查询
    得到两个结果
    把两个结果合并成临时表,取重复记录
      

  5.   

    where instr('上海农业银行',bankname)>0 and instr('上海农业银行',area)>0如果文本为“上海市农行”或“沪农行”,恐怕就要用辅助表了。
      

  6.   

    现在问问题的都这么NB了?你TMD也不像是问问题啊,像TMD老师在考试
      

  7.   


    朋友,请问。如果area这个地址有可能为空,该怎么处理?
    比如
    表结构 table1
    bankname bankcode area  
    农业银行 0000001 上海  
    农业银行 0000002 北京
    信用卡中心 0000003 
      

  8.   

    select * from table1 
    where instr('信用卡中心',bankname)>0 and instr('信用卡中心',nvl(area,'信用卡中心'))>0
      

  9.   


    朋友,如果bankname有"中国工商银行深圳市分行"存在怎么吧?因为也有"中国银行"交通银行 000000069 江苏
    招商银行 000000061 山东
    农业银行(宁波) 000000071 浙江
    广东发展银行 000000067 广东
    建设银行 000000001 上海
    浦东发展银行 000000002 上海
    工商银行 000000003 上海
    上海银行银行 000000004 上海
    交通银行 000000013 上海
    农业银行 000000021 上海
    邮政储蓄 000000032 上海
    招商银行 000000043 上海
    农业银行 000000017 北京
    工商银行 000000018 北京
    招商银行 000000035 北京
    中国银行银行 000000060 北京
    交通银行 000000056 北京
    中信银行 000000042 北京
    工商银行 000000023 江苏
    农业银行 000000024 江苏
    招商银行 000000029 江苏
    邮政储蓄 000000068 江苏
    中国银行银行 000000057 江苏
    建设银行 000000053 江苏
    农业银行 000000040 山东
    工商银行 000000041 山东
    中信银行 000000048 山东
    建设银行 000000049 山东
    工商银行(浙江) 000000050 浙江
    农业银行(浙江) 000000051 浙江
    工商银行 000000063 广东
    农业银行 000000064 广东
    中国银行银行 000000062 广东
    建设银行 000000066 广东
    招商银行(浙江) 000000075 浙江
    邮政储蓄 000000074 山东
    宁波银行 000000084 浙江
    中国银行(宁波) 000000083 浙江
    广东招商银行 000000073 广东
    广东交通银行 000000072 广东
    中国工商银行深圳市分行 000000076 广东
    中国农业银行深圳市分行 000000077 广东
    中国银行深圳市分行 000000078 广东
    中国建设银行深圳市分行 000000079 广东
    交通银行深圳市分行 000000080 广东
    深圳发展银行深圳市分行 000000081 广东
    招商银行深圳市分行 000000082 广东
    青岛市工商银行 000000091 山东
    青岛市农业银行 000000087 山东
    工商银行 000000085 天津
    农业银行 000000086 天津
    天津银行 000000108 天津
    江苏省宁波银行 000000094 江苏
    青岛建设银行 000000106 山东
    青岛招商银行 000000107 山东
    湖北工商银行 000000111 湖北
    湖北建设银行 000000108 湖北
    湖北招商银行 000000109 湖北
    湖北招商银行 000000109 湖北
    湖北农业银行 000000110 湖北
    山东工商银行信用卡中心 000000070 山东
    渣打银行 000000065 上海
    兴业银行信用卡中心 000000052
    招商银行信用卡中心 000000022
    中国银行江苏分行 000000046 江苏
    深圳发展银行信用卡中心 000000055
    招商银行北京市分行 000000020 北京
    广东发展银行 000000047
    天津交通银行 000000103 天津
    江苏银行 000000099 江苏
    南京浦发银行 000000096 江苏
    上海浦发银行 000000095 上海
    上海东亚银行 000000097 上海
    河北建设银行 000000126 河北
    上海江苏银行 000000125 上海
      

  10.   


    输入的字符串是什么?是区分“中国工商银行深圳市分行”和“中国银行深圳市分行”?对于这种类型的数据,建议 lz 先整理一下数据,让 bankname 列中只存储银行的名称,不要带地区。
    可以这样做:先创建一个表存储所有银行的正式名称,根据这些名称处理原始数据;如果原始名称中包含银行的正式名称,就将原始名称替换为此正式名称。