Oracle SQLクエリの結果が空のときに空のレコードを表示する方法

私は仕事で単純なSQLクエリや複雑なSQLクエリを書くことがよくありますが、特別な表示効果を得るために、SQLクエリに基づいて特別な処理を行う必要がある場合があります。このエクスペリエンスでは、クエリ結果が空の場合(クエリ結果にレコードがない場合)、空のレコードを表示する方法(レコードはあるが、レコード内のフィールドは空)、およびクエリ結果がoracle sqlクエリを導入します。空の場合、通常のクエリ結果に従って表示されます。ここでは、oracle rownum属性を使用します。

方法1

まず、通常のOracle SQLのクエリを下図のように表示し、クエリ結果が空の場合の表示状況を見てみましょう。特別な処理なしではクエリ結果にレコードがなく、ここでのクエリsqlはAクエリとしてマークされていることがわかります

Oracle SQLクエリの結果が空のときに空のレコードを表示する方法




②、次に、クエリ結果が空なので空のレコードが表示されると初めて思ったとき、まず空のレコードを作成する必要があるので、上記のSQLクエリと空のレコードを結合することを考え、次のようにしました。クエリ結果:

Oracle SQLクエリの結果が空のときに空のレコードを表示する方法





③上記のクエリ結果から、期待通りの効果が得られているようですが、クエリ条件が変化すると(クエリ条件のloginnameパラメータ値が変化すると)問題ありませんか? ?見てみましょう:

Oracle SQLクエリの結果が空のときに空のレコードを表示する方法





方法2

①、

前のステップのクエリ結果から、元のクエリSQLクエリ結果が空でない場合は、クエリ結果を動的に処理する必要があるため、つまり、クエリ結果が空でない場合に、空のレコードを結合する方法に従うだけであることがわかります。空の場合は通常のクエリ結果に従って表示され、クエリ結果が空の場合のみ空のレコードが表示されます。したがって、ここでは特別な処理のためにoracle rownum疑似列を導入する必要があります。まず、rownumを使用した簡単なクエリ結果を見てみましょう。ここのクエリsqlはB queryと示されています

Oracle SQLクエリの結果が空のときに空のレコードを表示する方法
Oracle SQLクエリの結果が空のときに空のレコードを表示する方法










②、

前のステップのクエリ結果から、rownumは実際にはSQLクエリ結果レコードの数であることがわかります。rownumの範囲を制御することで、特殊なクエリ効果を実現できます。たとえば、rownum <= nは、クエリ結果の最初のn個のレコードをクエリできます。決定する必要があるのは、このn値です。ここでは、decode関数を使用して、次のことを決定します。

Oracle SQLクエリの結果が空のときに空のレコードを表示する方法
Oracle SQLクエリの結果が空のときに空のレコードを表示する方法















③、

最後に、最終的なクエリsqlを取得するために統合します。つまり、Aクエリの結果が空の場合、n = 1を取得し、Aクエリレコードが空でない場合、n =クエリレコードの総数を取得し、最後にrownum <=を取得します。次のように、nのクエリ条件がBクエリに書き込まれ、目的の結果が得られます。

Oracle SQLクエリの結果が空のときに空のレコードを表示する方法
Oracle SQLクエリの結果が空のときに空のレコードを表示する方法


















この記事の複製元:https://jingyan.baidu.com/article/73c3ce28178ae8e50343d91e.html

元の記事を28件公開 15のような 110,000以上の訪問

おすすめ

転載: blog.csdn.net/z3h0a5n8g8x9i9a2o3/article/details/79662949