oracle中查詢結果集為空,則得到乙個預設值

2022-05-10 14:47:18 字數 539 閱讀 3197

有同事問我上述問題,我把我的實現思路寫出來。

子查詢把查詢的結果和預設的結果全部顯示。

父查詢通過偽列rownum來篩選,如果查詢有結果,就有幾條就顯示幾條,而不去顯示子查詢中的預設值;如果查詢沒有結果,那就把預設值顯示出來

舉例:select * from (

select table_name from user_tables where rownum < 3

union all

select 'default' from dual )

where rownum <= (select case (select count(1) from user_tables where rownum <3) when 0 then 1 else (select count(1) from user_tables where rownum <3) end from dual);

這個查詢,對user_tables的限制條件需要一樣。通過調整限制條件中的記錄數量,可以實現:如果查詢有結果集,則有幾個就顯示幾個,如果查詢沒有結果集,就顯示default

oracle中查詢結果集為空,則得到乙個預設值

有同事問我上述問題,我把我的實現思路寫出來。子查詢把查詢的結果和預設的結果全部顯示。父查詢通過偽列rownum來篩選,如果查詢有結果,就有幾條就顯示幾條,而不去顯示子查詢中的預設值 如果查詢沒有結果,那就把預設值顯示出來 舉例 select from select table name from u...

ResultSet結果集為空判斷

之前對resultset結果集的next 方法的引用沒太多在意,常常就是直接while rs.next 進行遍歷。如果要對rs結果集做是否為空進行判斷的話,很多人第一想法是 if rs null 這是錯誤的,無論什麼結果都會返回 false 的結果,在這裡我們就需要用if rs.next 或者是if...

ResultSet結果集為空判斷

工作中碰上,在網上看了半天,才發現 如果要對rs結果集做是否為空進行判斷的話,很多人第一想法是 if rs null 這是錯誤的,無論什麼結果都會返回 false 的結果,在這裡我們就需要用if rs.next 或者是if rs.first 前者是判斷rs是否有值,沒有時返回false 後者是判斷r...