
上圖是子查詢的,單獨執行可以查詢到結果集,如下圖

sql為

那么問題來了

IN的后面子查詢結果集有29條資料,總查詢為結果集就是空的
但是從子查詢結果集里面任何一條 用=號來執行都有資料

第一次發帖,不知道有沒有描述清楚,大佬們幫忙解釋下
uj5u.com熱心網友回復:
SQL的可閱讀性很不好,
子查詢有資料,單一的查詢也有資料,按理來說,完整的兩重查詢也應該有資料。
所以我直接懷疑: 你的單獨子查詢陳述句和最終運行的子查詢陳述句不一樣
uj5u.com熱心網友回復:
使用exists另外in 的時候注意是否有空值,記得nvl處理下。
uj5u.com熱心網友回復:
圖中有顯示執行的sql,子查詢確實是一樣的,我的疑問跟你想的一樣,為什么單獨都可以,結合其來就不行了呢
uj5u.com熱心網友回復:
是不是查詢欄位和結果集字符型別不一致的原因,轉換同一型別試試?uj5u.com熱心網友回復:
你這得發資料庫-oracle版塊去uj5u.com熱心網友回復:
不要相信看到的東西,單條查沒問題,說明attendance_ilink表中確實有wangxiang1這些資料。但是子查詢中你看到的卻未必和你輸入的wangxiang1是一致的。懷疑子查詢中的資料編碼不一致,但是拷貝出來會發生變化。直接查詢子查詢的資料里是否有wangxiang1看看,應該會沒有。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/57054.html
標籤:開發
上一篇:[求助]orcale創建觸發器插入資料時進行判斷修改后再插入的寫法
下一篇:plsql如何關閉&的提示框
