如何查询为空的数据?

luren_2011 2012-06-25 06:21:29

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可能会为空,

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)

这样好像不对,应该如何写呢?
...全文
237 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aquarius_Uranus 2012-06-27
  • 打赏
  • 举报
回复

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;
minus
SELECT '','',''....... l.* from LogList l where DevCode is null or orgcode is null;




zulianfan 2012-06-26
  • 打赏
  • 举报
回复
你用全外连接就好了,为空的都会出来
shuihan20e 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
看着蛋疼
[/Quote]
确实蛋疼,不蛋疼就不问了,哈哈
renfengjun 2012-06-26
  • 打赏
  • 举报
回复
看着蛋疼
shuihan20e 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
试试用外连接方式?以下SQL可能需要附加其他条件

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……
[/Quote]
外连接只能连接一个表
cnwz 2012-06-26
  • 打赏
  • 举报
回复
试试用外连接方式?以下SQL可能需要附加其他条件
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 l.OrgCode(+)=ORG.OrgCode
AND Dev.DevType=DT.DevTypeID;
shuihan20e 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
貌似是5表呢..

这样试试:

SQL code

SELECT distinct l.*,Dev.*,lt.*,DT.*,ORG.*
FROM LogList l,
DevList Dev,
LogType lt,
DevType DT,
OrgList ORG
WHERE (l.DevCode=Dev.DevCode o……
[/Quote]
这个好像是错误的
menglingwen 2012-06-25
  • 打赏
  • 举报
回复
在select 后加distinct 可以去掉重复行
  • 打赏
  • 举报
回复
倒数第二行的or去掉 没注意.
  • 打赏
  • 举报
回复
貌似是5表呢..

这样试试:

SELECT distinct l.*,Dev.*,lt.*,DT.*,ORG.*
FROM LogList l,
DevList Dev,
LogType lt,
DevType DT,
OrgList ORG
WHERE (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)
luren_2011 2012-06-25
  • 打赏
  • 举报
回复
也就是重复的行,只显示一行
luren_2011 2012-06-25
  • 打赏
  • 举报
回复
重复的行,楼上说错了
luren_2011 2012-06-25
  • 打赏
  • 举报
回复
另外需要把重复的列去掉

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧