我對 SQL 很陌生,只有在 plsql 中 Col2 (Col3) 的狀態值都不為空時,才需要一些建議來撰寫查詢以選擇 Col1 的值。 在上面,我希望結果只回傳 A2,就像在 A1 中一樣,col3 中有一個空值。
uj5u.com熱心網友回復:
有很多方法可以給這只貓剝皮,但這應該會回傳所有 A2 行:
select *
from yourTable d
where d.col1 in (select col1
from (select col1
,sum(case when col3 is null then 1 else 0 end) null_values
from yourTable
group by col1
)
where null_values = 0
)
簡要說明該方法:內部查詢計算每個 col1 值的 null col3 值的數量;然后中間查詢回傳唯一沒有關聯的空 col3 值的不同 col1 值,外部查詢回傳包含 col1 值的所有行的所有詳細資訊。
以上當然是SQL。由于您已指定 PL/SQL,您可以根據需要包含游標或批量 collect into子句之類的內容以處理查詢結果集。
正如我在下面的評論中提到的,這只是實作輸出的一種方式——Oracle 分析功能也可能會有所幫助。此外,根據資料集的大小,您可能需要考慮所選方法的性能方面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/472540.html
標籤:sql 甲骨文 plsql oracle-sqldeveloper plsql开发者
上一篇:從程序中獲取資料并顯示在表格中
