Oracle数据库语句

    select s_city.*
      from s_city
     where substr(CITY_CODE, -2) = '00'
       AND substr(CITY_CODE, -4) != '0000'
       AND substr(city_name, 1) != '*' 
       AND substr(CITY_CODE, 0, 2) = '110000'
    union
    select s_city.*
      from s_city
     where substr(CITY_CODE, -2) = '00'
       AND substr(CITY_CODE, -4) != '0000'
       AND substr(city_name, 1) != '*' 
       AND substr(CITY_CODE, 0, 2) = '110000'

根据一级省市代码,在s_city表中选取二级城市,这段语句有错吗?
例如110000代表北京市,按北京市查询二级城市,应该吧朝阳区,丰台区,海淀区,西城区等列出来,但是返回结果是空的,并没有报错。求大神指导

阅读 1.9k
1 个回答

自己尝试where条件全部去掉,然后一个一个加上去就能发现是哪个条件的问题了。

我大概判断是下面的问题:
substr(CITY_CODE, 0, 2),表示取CITY_CODE前两位,怎么可能的等于一个6位的字符串呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进