当前位置: 代码迷 >> Oracle管理 >> 怎么查询为空的数据
  详细解决方案

怎么查询为空的数据

热度:83   发布时间:2016-04-24 05:12:06.0
如何查询为空的数据?
SQL code
SELECT l.*,Dev.*,lt.*,DT.*,ORG.* FROM LogList l, DevList Dev,LogType lt,DevType DT,OrgList ORG          WHERE l.DevCode=Dev.DevCode AND l.LogTypeID=lt.LogTypeID AND Dev.DevType=DT.DevTypeID or          AND l.OrgCode=ORG.OrgCode;

四个表联合查询,但是Loglist.DevCode,orgcode可能会为空,
SQL code
SELECT l.*,Dev.*,lt.*,DT.*,ORG.* FROM LogList l, DevList Dev,LogType lt,DevType DT,OrgList ORG          WHERE l.DevCode=Dev.DevCode AND l.LogTypeID=lt.LogTypeID AND Dev.DevType=DT.DevTypeID or          AND l.OrgCode=ORG.OrgCode or (l.devcode is null)or(l.orgcode is null)

这样好像不对,应该如何写呢?

------解决方案--------------------
貌似是5表呢..

这样试试:
SQL code
SELECT distinct l.*,Dev.*,lt.*,DT.*,ORG.* FROM LogList l,      DevList Dev,     LogType lt,     DevType DT,     OrgList ORGWHERE (l.DevCode=Dev.DevCode or l.devcode is null)       AND l.LogTypeID=lt.LogTypeID       AND Dev.DevType=DT.DevTypeID or      AND (l.OrgCode=ORG.OrgCode or l.orgcode is null)
------解决方案--------------------
倒数第二行的or去掉 没注意.
------解决方案--------------------
试试用外连接方式?以下SQL可能需要附加其他条件
SQL code
SELECT l.*,Dev.*,lt.*,DT.*,ORG.*FROM LogList l, DevList Dev,LogType lt,DevType DT,OrgList ORGWHERE l.DevCode(+)=Dev.DevCode  AND l.LogTypeID(+)=lt.LogTypeID  AND l.OrgCode(+)=ORG.OrgCode  AND Dev.DevType=DT.DevTypeID;
------解决方案--------------------
看着蛋疼
  相关解决方案