如何去掉存在空值的行
通过如下语句,能找出四行为空的记录,详情如下:select sypxx01,
sypph01,
(select sgfdw01 from yygla10 where sypjy01 = yygla11.sypjy01) as sypkw01,
0 as nypkc01,
Sjymx03 as SYPPH02,
Djymx07 as dypph03,
Njymx06 as nypph04
from yygla11
where sypjy01 like 'BK%'
and sypxx01 > '0'
and sypph01 > '0'
order by sypkw01 desc
通过如下语句:select * from yygla10 where sgfdw01 is null
却找不到任何数据。详情如下:
谁能告诉我,这是什么原因呢,要如何调整,才能显示sypkw01的数据。 对于那四条记录,并不是这个项目的值为空,而是yygla10里面不存在匹配的纪录。。 sgfdw01 取得的条件,写到where里,以内连接得方式取得,就能把那四个空白行去掉了。
但是业务上是否确实需要如此,还请确认明确。 写法大致如下
select y11.sypxx01,
y11.sypph01 as sypph01,
y10.sgfdw01 as sypkw01
……
from yygla10 y10, yygla11 y11
where y10.sypjy01 = y11.sypjy01
and y11.sypjy01 like 'BK%'
and y11.sypxx01 > '0'
and y11.sypph01 > '0'
order by sypkw01 desc
根据你提出的问题,建议重点了解一下内连接,左外连接,右外连接,全外连接的异同。
可能会有帮助。 确定那是null值?不是空格之类的字符? 应该不是空格,他用的这个工具,显示null和空格时候的背景色好像是不一样的。 多谢"水平展开"
你的回答很对
确实是匹配问题,后来把匹配不上的找出来,删除,问题就解决了。 你真厉害,一眼就看出了有不匹配的问题。
问题解决了,呵呵,谢谢
多谢你的建议,我只是当时没有找到是什么原因,并不是不知道你提的
经验不足啊,不过你的回答要转个弯,不过也间接说明了什么原因
页:
[1]
2