日期:2014-05-17 浏览次数:20946 次
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' 试下。