日期:2014-05-17 浏览次数:20854 次
CREATE TABLE T165 ( ID NUMBER(4), F1 VARCHAR2(20) ); INSERT INTO T165 VALUES(1, 'A'); INSERT INTO T165 VALUES(2, 'B'); INSERT INTO T165 VALUES(3, 'C'); INSERT INTO T165 VALUES(4, 'D'); CREATE TABLE T166 ( ID NUMBER(4), F2 VARCHAR2(20) ); INSERT INTO T166 VALUES(1, 'AA'); INSERT INTO T166 VALUES(2, 'BB'); INSERT INTO T166 VALUES(3, 'CC'); INSERT INTO T166 VALUES(4, 'DD');
------解决方案--------------------
除了你“SELECT abcode FROM Q2008 where gcode='CLC2'” 这个语句查询没内容,否则应该一样的
------解决方案--------------------
WHERE B.code IN(SELECT abcode FROM Q2008 where gcode='CLC2')
这句话,看看是不是abcode带有空格,造成b.code不在abcode中。
IN(0305,0502,0501,0419,0605,1002,0904,0702,0810) 没带有空格
------解决方案--------------------
会不会字段类型的问题?
create table t1(str varchar2(10)); ----str用varchar2类型 insert into t1 values ('1'); commit; create table t2(str char(10)); --str用char类型 insert into t2 values ('1'); commit; SQL> select * from t1 where t1.str in ('1'); --可以查出结果 STR ---------- 1 SQL> select * from t1 where t1.str in (select t2.str from t2); --没有结果 STR ----------
------解决方案--------------------
嗯,呵呵,可能是空格之类问题...楼主 用 SELECT trim(abcode) FROM Q2008 where gcode='CLC2' 试下。