17,382
社区成员




SQL> select 1 from dual where '12' like (select 1 from dual)||'%';
1
----------
1
SQL>
select *
from ur
where username = 'gbk'
and jtmk_name like (select name || '*%' from qc where lm_mark = 'gtjl')
--或者这样
select a.*
from ur a,qc b
where username = 'gbk'
and instr(a.jtmkname,b.name)>0 and b.lm_mark = 'gtjl'
--你看看这样
SQL> edi
已写入 file afiedt.buf
1 declare
2 v_name qc.name%type;
3 type cur_type is ref cursor;
4 cur1 cur_type;
5 u_name varchar2(10);
6 u_id varchar2(10);
7 begin
8 select name into v_name from qc where lm_mark = 'gtjl' and rownum=1;
9 open cur1 for 'select username,id from ur where username like '||''''||v_name||'%'||'''';
10 fetch cur1 into u_name,u_id ;
11 while cur1%found loop
12 dbms_output.put_line(u_name||' '||u_id);
13 fetch cur1 into u_name,u_id;
14 end loop;
15 close cur1;
16* end;
SQL> /
abc1 1
abc2 2
abc3 3
abc4 4
abc5 5
PL/SQL 过程已成功完成。