首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

Oralce查询语句执行函数先后有关问题

2012-12-15 
Oralce查询语句执行函数先后问题本帖最后由 assoloist 于 2012-11-07 21:07:00 编辑SELECT usr_id from us

Oralce查询语句执行函数先后问题
本帖最后由 assoloist 于 2012-11-07 21:07:00 编辑


SELECT usr_id from usertabel where usr_nam in 
 (select chr(39)||replace(per_dsc,',',chr(39)||','||chr(39))||chr(39) 
 FROM datatable where pkvalue=1088 )


如上述这个SQL查询语句,字段per_dsc里面放的是人名,中间用英文逗号隔开,如:张三,李四

然后如果单执行括号里面的查询,返回结果是:'张三','李四'

如果单单执行语句:

SELECT usr_id from usertabel where usr_nam in  ('张三','李四')


返回结果是:ZHANGSAN LISI


但是连起来一次查询,就得不到任何结果。。。

是不是有执行函数先后顺序的问题呢?
[最优解释]
','
[其他解释]
SELECT usr_id from usertabel where usr_nam in  ('张三','李四') 


后面in
是这样,是个集合:
select name from(select '张三'  name from dual union all
     select '李四' from dual )
而不是 select '张三,李四' from  dual
[其他解释]
SELECT usr_id from usertabel where usr_nam in  (select chr(39)
[其他解释]
replace(per_dsc,',',chr(39)
[其他解释]
chr(39))
[其他解释]
chr(39)  FROM datatable where pkvalue=1088 )
相当于
SELECT usr_id from usertabel where usr_nam in ('''张三'',''李四''');-
当然查不到结果了

热点排行
Bad Request.