日期:2014-05-20  浏览次数:20702 次

oracle 问一下sql语句 我现在都糊涂了
select * from A where id in ( select aid form b where id = m )

if “select aid form b where id = m” 查出来的为空 该怎么处理啊 (不用过程和函数)

------解决方案--------------------
你的问题是啥啊?没感觉这句话没有啥问题啊?
select * from A where id in ( select aid form b where id = m )

查询子句如果为NULL,无非就是整个语句没有任何返回呗。

------解决方案--------------------
如果查询结果为空,那返回结果也为空啊,建议楼主自己试试啊,加油啊.
------解决方案--------------------
不会报错,查询结果为0条记录
------解决方案--------------------
探讨
引用:
不会报错,查询结果为0条记录


报错的 如果 in内的条件为空 是报错的 我试过了 select * from A where id in (); 你试一下 绝对错的

------解决方案--------------------
不报错。。。。你报的是什么错,缺失表达式?
------解决方案--------------------
select * from A where id in ( select aid form b where id = m )

报错,这个我还真没试过,那么改成表连接吧:

select A.* 
from A join B on A.id = B.aid
where B.id = m
------解决方案--------------------
SQL> select * from city where name in ('');
  
PROVINCE_NAME NAME POST_CODE EN_NAME NODE_ID
------------------------------ ------------------------------ --------- ------------------------------ ---------------------------------------
------解决方案--------------------
Java code

SQL> select * from city where name in ();
 
PROVINCE_NAME                  NAME                           POST_CODE EN_NAME                                                        NODE_ID
------------------------------ ------------------------------ --------- -----------------

------解决方案--------------------
SQL> select * from IFLOW_INTERTRY where id in (NULL);
 
ID GROUPID USERID PROCESSID DEPARTMENTID WRITERDATE TELEPHONE THEME TITLE ENCLOSURE DEPARTCANCEL DEPARTOPINION FUZONGNAME FUZONGSIGN RELATIVENAME RELATIVESIGN LEADNAME LEADEXAMINE OPERTIME ZONGBANMISHUID GONGSILINGDAOID
-------------------- ------- -------------------- --------
大哥,没报错,如果报错,把报错信息放上来
------解决方案--------------------
我记得in是不报错的,看你们吵的热烈,我又去MySQL中试了下:
Select * From A Where A.id in (Select B.sid From B Where B.id = 1)
A、B 两个表都是空表,没报错,正常执行。

楼主你说的出错,查询子句是自己用拼装字符串的方式去搞的?


------解决方案--------------------
Java code


SQL> select name from city where node_id='19';
 
NAME
------------------------------
 
SQL> select * from city  where name in (select name from city where node_id='19');
 
PROVINCE_NAME                  NAME                           POST_CODE EN_NAME                                                        NODE_ID
------------------------------ ------------------------------ --------- -------------