本人在做数据库查询时,莫名其妙地在查询结果中出现空行,使查询结果不能和其他部分查询结果匹配,请高手指点以下.本人的这一部分代码如下:
SELECT DISTINCT CASE H.JIYO_KBN WHEN 1 THEN (
SELECT DISTINCT C.SHOP_NM
FROM CM_SHOP_MT C
WHERE E.SITATE_NO=H.SITATE_NO
AND C.SHOP_CD=H.SYARYO_KANRI_SHOP_CD)
WHEN 2 THEN (
SELECT DISTINCT A.YOSYASAKI_NM
FROM YS_YOSYASAKI_MT A,
YS_RESOURCE_MT D
WHERE E.SITATE_NO =H.SITATE_NO
AND H.YOSYA_RES_NO = D.YOSYA_RES_NO
AND A.YOSYASAKI_CD=D.YOSYASAKI_CD )
END
FROM HA_HAISYA H,
HA_ORDER E
WHERE TO_CHAR(E.LOAD_DT,'YYYY/MM/DD')='2005/07/30'
AND E.JYUCYU_SHOP_CD = 1
这个查询结果应该只有一条记录,可是在我用PL/SQL Developer 中执行时,其结果会是两行,一行是我要的数据,一行空行,请大师指点一下,把空行去除了.谢谢
SELECT DISTINCT CASE H.JIYO_KBN WHEN 1 THEN (
SELECT DISTINCT C.SHOP_NM
FROM CM_SHOP_MT C
WHERE E.SITATE_NO=H.SITATE_NO
AND C.SHOP_CD=H.SYARYO_KANRI_SHOP_CD)
WHEN 2 THEN (
SELECT DISTINCT A.YOSYASAKI_NM
FROM YS_YOSYASAKI_MT A,
YS_RESOURCE_MT D
WHERE E.SITATE_NO =H.SITATE_NO
AND H.YOSYA_RES_NO = D.YOSYA_RES_NO
AND A.YOSYASAKI_CD=D.YOSYASAKI_CD )
END
FROM HA_HAISYA H,
HA_ORDER E
WHERE TO_CHAR(E.LOAD_DT,'YYYY/MM/DD')='2005/07/30'
AND E.JYUCYU_SHOP_CD = 1
这个查询结果应该只有一条记录,可是在我用PL/SQL Developer 中执行时,其结果会是两行,一行是我要的数据,一行空行,请大师指点一下,把空行去除了.谢谢
解决方案 »
- 用游标SELECT2个表的时候2个表中有相同列名用ROWTYPE怎么准确取出?
- select * from v$datafile;查询到的5个文件中,哪个是控制文件?
- 求解!
- 求出d字段之和sum(条件:a字段值相等),实现下面的效果。急,在线等!!!!!!,谢谢 !
- 可以在WIN 2000 PROFESSIONAL下安装 ORACLE8.1.5的服务器版吗
- 求救,一个查询sql的问题,我困惑好久
- 请教把一个数据库几个表导入另一数据库语句
- 请问一个更新语句?在线等待
- OracleManagementServer 为什么启动不了呢?
- 高手请进!在线等待
- Oracle提示:TNS:没有监听器
- 100分求一个sql语句
FROM HA_HAISYA H,
HA_ORDER E
WHERE TO_CHAR(E.LOAD_DT,'YYYY/MM/DD')='2005/07/30'
AND E.JYUCYU_SHOP_CD = 1
这样看看,是否也是两条。条数跟子查询没有直接的关系。