久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

為什么這個 sql 使用 union all 沒有返回任何數據

why this sql used union all returned no data(為什么這個 sql 使用 union all 沒有返回任何數據)
本文介紹了為什么這個 sql 使用 union all 沒有返回任何數據的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

限時送ChatGPT賬號..

sql 1st 的結果:

the result of 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 t2, '' as t3 from dual where 1=2) p2 on p1.t1 = p2.t1

A   NULL    NULL

sql 2nd的結果:

the result of sql 2nd:

select p1.t1, p2.t2, p2.t3 from 
(select 'B' as t1,'' as t2,'' as t3 from dual ) p1 left join
(select '' as t1, '' as t2, '' as t3 from dual where 1=2) p2 on p1.t1 = p2.t1

B   NULL    NULL

如果我將 sql 的所有這兩個部分聯合起來,我期望的 sql 是:

if I union all these two part of sql, my expected sql are:

A    NULL    NULL
B    NULL    NULL

但我沒有得到任何結果.

but I get no result .

sql如下:

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 t2, '' as t3 from dual where 1=2) p2 on p1.t1 = p2.t1
union all
select p1.t1, p2.t2, p2.t3 from 
(select 'B' as t1,'' as t2,'' as t3 from dual ) p1 left join
(select '' as t1, '' as t2, '' as t3 from dual where 1=2) p2 on p1.t1 = p2.t1

我在 oracle 上測試了這個 sql.我想知道為什么結果不像我的預期.順便說一句,如果使用union而不是union all,結果和預期的一樣.

I tested this sql on oracle. I want to know why the result is not like my expected. by the way, if use union instead of union all, the result is just like expected.

推薦答案

您還沒有說明您在哪個版本上遇到此問題,但 Gordon Linoff 在運行 11.2.0.2 的 SQL Fiddle 上進行了復制,正如其他人所說它在 10g 和 11.2.0.3 中沒有出現,因此認為您可能也在 11.2.0.2 上似乎是合理的.

You haven't said which version you're encountering this on, but Gordon Linoff reproduced on SQL Fiddle which is running 11.2.0.2, and as others have said it's not seen in 10g and 11.2.0.3, so it seems reasonable to think you might be on 11.2.0.2 as well.

在這種情況下,這看起來與錯誤 12336962 相同.如果您可以訪問 Oracle 支持,您(或您的 DBA)可以查看它,但我無法重現它在這里所說的內容,即使它是一個已發布的錯誤.運行您的查詢和錯誤報告中的示例會產生相同的結果,并且在兩種情況下從 union all 更改為 union 都會產生正確的結果.不過,您可能想要提出服務請求以確認這一點.

In which case, this looks identical to bug 12336962. If you have access to Oracle Support you (or your DBA) can look that up, but I can't reproduce what it says here, even though it's a published bug. Running your query and the example from the bug report produce the same results, and in both cases changing from union all to union produces correct results. You might want to raise a service request to get that confirmed though.

該錯誤已在 11.2.0.3 補丁集中修復 - 我不確定我是否真的應該分享它,但它已經在這里發布 - 所以修補可能是你最好的選擇,如果你提出 SR,Oracle 可能會建議你這樣做.如有疑問,請直接詢問 Oracle.

That bug is fixed in the 11.2.0.3 patch set - I'm not sure I'm really supposed to even share that, but it's already published here - so patching up might be your best bet, and Oracle might suggest that if you do raise an SR. If in doubt, ask Oracle directly.

這篇關于為什么這個 sql 使用 union all 沒有返回任何數據的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

What SQL Server Datatype Should I Use To Store A Byte[](我應該使用什么 SQL Server 數據類型來存儲字節 [])
Interpreting type codes in sys.objects in SQL Server(解釋 SQL Server 中 sys.objects 中的類型代碼)
Typeorm Does not return all data(Typeorm 不返回所有數據)
Typeorm .loadRelationCountAndMap returns zeros(Typeorm .loadRelationCountAndMap 返回零)
How to convert #39;2016-07-01 01:12:22 PM#39; to #39;2016-07-01 13:12:22#39; hour format?(如何將“2016-07-01 01:12:22 PM轉換為“2016-07-01 13:12:22小時格式?)
MS SQL: Should ISDATE() Return quot;1quot; when Cannot Cast as Date?(MS SQL:ISDATE() 是否應該返回“1?什么時候不能投射為日期?)
主站蜘蛛池模板: 成人做爰999| 国产性网 | 久久在线视频 | 久久婷婷av| 亚洲视频免费在线观看 | 国产成人免费在线观看 | 一级黄色影片在线观看 | 成人免费观看男女羞羞视频 | 欧美日韩精品国产 | 91佛爷在线观看 | 特级黄一级播放 | 鸡毛片| 成人免费网视频 | 久久久久国色av免费观看性色 | 国产成人免费视频 | 亚洲国产成人精品女人久久久 | 久久男人 | 九九综合 | 黑人精品欧美一区二区蜜桃 | 亚洲精品一区二区三区中文字幕 | 91短视频网址 | 亚洲视频一区二区三区四区 | 成人在线观看亚洲 | 日韩黄a | 日本不卡高清视频 | 男女网站在线观看 | 一道本视频 | 久久国产区 | 中文字幕 国产 | 久久精品国产一区 | 91精品在线播放 | 亚洲国产成人av好男人在线观看 | 国产原创视频 | 91一区二区三区在线观看 | 一本一道久久a久久精品蜜桃 | 免费在线播放黄色 | 久久综合一区二区三区 | 精品久久久久久18免费网站 | 成人高潮片免费视频欧美 | 国产网站在线免费观看 | 日本免费一区二区三区四区 |