in子句为什么不能匹配自定义函数返回的条件??CREATE OR REPLACE FUNCTION fun_test
RETURN varchar2
IS
v_code varchar2(100);
BEGIN
v_code:='''aaa'',''bbb'',''ccc''';
RETURN v_code;
END fun_test;select fun_test() from dual ;
输出结果为:'aaa','bbb','ccc'
select 'true' aa from dual where 'aaa' in(fun_test());为什么没有输出结果??in中条件为什么找不到aaa??
RETURN varchar2
IS
v_code varchar2(100);
BEGIN
v_code:='''aaa'',''bbb'',''ccc''';
RETURN v_code;
END fun_test;select fun_test() from dual ;
输出结果为:'aaa','bbb','ccc'
select 'true' aa from dual where 'aaa' in(fun_test());为什么没有输出结果??in中条件为什么找不到aaa??
select 'true' aa from dual where 'aaa' in(''aaa','bbb','ccc'');
--并不是
select 'true' aa from dual where 'aaa' in('aaa','bbb','ccc');
--在你的sql里面 'aaa','bbb','ccc' 代表一个字符串,虽然形式上和in条件一样,但是还是有区别的。