plsql中對單行子查詢返回多個行思考

2021-10-06 08:42:07 字數 478 閱讀 2381

select a.*,(selcet b.id from b where b.name = a.name ) from a
select a.*,(selcet b.id from b where b.name = a.name ) from a

--在plsql介面不報錯,但是展開所有的字段就會報錯:ora-01427:單行子查詢返回多個行

select a.*,(selcet b.id from b where b.name = a.name ) from a order by a.name

--在這段後面加上排序語句,sql執行就會立即報錯

對於以上兩種情況的思考:

1.現象1plsql只獲取了有限的rownum行,恰巧這些行中沒有錯誤的資料,所有沒有報錯;

2.現象2plsql進行排序處理,會搜尋所有的復合條件的資料導致立即報錯;

關聯查詢 單行子查詢返回多列

例1 select from table1 where id select id from table1 由於子查詢結果中有多行,但是where條件id 只能有一行記錄 例2 select select name from emp where a.job b.job from emp 由於 子查詢的...

單行子查詢返回多行

今天在做專案的時候,將備份back表中的資料更新到正式表中的時候,報了單行子查詢返回多行的錯誤,後來仔細檢視了備份表的子查詢發現確實有多個tcx wx xx id 的記錄,所以rownum 2 強制取了第一條,因為本來就是單條更新。update tcx wx xx wx set tcx sblxzd...

ORA 01427 單行子查詢返回多個行

問題情境之一的模擬 select a.sname,b.score,select c.tel from tab c c where c.no a.no tel from tab a a,tab b b where a.id b.id 執行指令碼,報錯 ora 01427 單行子查詢返回多個行 原因 查...