为什么这个sql使用union all都没有返回数据
发布时间:2020-12-12 07:26:42 所属栏目:MsSql教程 来源:网络整理
导读:sql 1st的结果: select p1.t1,p2.t2,p2.t3 from (select 'A' as t1,'' as t2,'' as t3 from dual ) p1 left join(select '' as t1,'' as t3 from dual where 1=2) p2 on p1.t1 = p2.t1 是 A NULL NULL sql第2的结果: select p1.t1,p2.t3 from (select 'B' a
sql 1st的结果:
select p1.t1,p2.t2,p2.t3 from (select 'A' as t1,'' as t2,'' as t3 from dual ) p1 left join (select '' as t1,'' as t3 from dual where 1=2) p2 on p1.t1 = p2.t1 是 A NULL NULL sql第2的结果: select p1.t1,p2.t3 from (select 'B' as t1,'' as t3 from dual where 1=2) p2 on p1.t1 = p2.t1 是 B NULL NULL 如果我将所有这两部分的sql联合起来,我期望的sql是: A NULL NULL B NULL NULL 但我没有结果. sql如下: select p1.t1,'' as t3 from dual where 1=2) p2 on p1.t1 = p2.t1 union all select p1.t1,'' as t3 from dual where 1=2) p2 on p1.t1 = p2.t1 我在oracle上测试了这个sql. 解决方法你还没有说过你遇到过这个版本的版本,但是Gordon Linoff在SQL Fiddle上重现了11.2.0.2,并且正如其他人所说的那样在10g和11.2.0.3中没有看到它,所以认为你似乎是合理的可能也在11.2.0.2上.在这种情况下,这看起来与错误12336962相同.如果您有权访问Oracle支持,您(或您的DBA)可以查看,但我无法重现它在这里所说的内容,即使它是已发布的错误.运行查询和错误报告中的示例会产生相同的结果,在这两种情况下,从union all更改为union会产生正确的结果.您可能希望提出服务请求以获得确认. 在11.2.0.3补丁集中修复了这个错误 – 我不确定我是否真的应该分享它,but it’s already published here – 所以修补可能是你最好的选择,而甲骨文可能会建议如果你确实提高了SR.如有疑问,请直接询问Oracle. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |