Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío

A menudo escribo consultas SQL simples o complejas en mi trabajo. A veces necesito hacer un procesamiento especial basado en la consulta SQL para lograr efectos de visualización especiales. Esta experiencia presentará la consulta SQL Oracle, si el resultado de la consulta está vacío (el resultado de la consulta no tiene un registro), cómo mostrar un registro vacío (hay un registro, pero los campos en el registro están vacíos) y cuando el resultado de la consulta no está Cuando está vacío, se mostrará de acuerdo con los resultados normales de la consulta. Aquí usamos el atributo oracle rownum.

Método uno

Primero, echemos un vistazo a la situación de visualización cuando el resultado de la consulta está vacío cuando la consulta ordinaria de Oracle SQL se muestra en la figura a continuación. Se puede ver que no hay registro en el resultado de la consulta sin un procesamiento especial, y la consulta sql aquí está marcada como una consulta .

Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío




Entonces, la primera vez que pensamos que dado que el resultado de la consulta está vacío, se muestra un registro vacío, primero tenemos que crear un registro vacío, por lo que pensamos en usar un registro vacío para unirlo con la consulta SQL anterior, y obtuvimos lo siguiente Resultados de la consulta:

Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío





③ De los resultados de la consulta anterior, parece que vemos que es el efecto esperado que queremos lograr, pero el problema surge, una vez que cambia la condición de mi consulta (el valor del parámetro loginname en la condición de la consulta cambia), ¿el resultado será satisfactorio? ? Echemos un vistazo:

Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío





Método dos

① 、

A partir de los resultados de la consulta en el paso anterior, podemos ver que cuando el resultado de la consulta sql de la consulta original no está vacío, simplemente seguimos el método de unión de un registro vacío, porque queremos procesar dinámicamente el resultado de la consulta, es decir, cuando el resultado de la consulta no es Cuando está vacío, se mostrará de acuerdo con el resultado de la consulta normal. Solo cuando el resultado de la consulta esté vacío, se mostrará un registro vacío. Por lo tanto, aquí tenemos que introducir la pseudo columna oracle rownum para un procesamiento especial. Primero mire los resultados de la consulta simple usando rownum, la consulta sql aquí se denota como consulta B :

Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío
Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío










② 、

A partir de los resultados de la consulta en el paso anterior, podemos ver que rownum es en realidad el número del registro de resultados de la consulta SQL. Podemos lograr un efecto de consulta especial controlando el rango de rownum. Por ejemplo, rownum <= n puede consultar los primeros n registros en el resultado de la consulta. Lo que necesitamos determinar es este valor n. Aquí usamos la función de decodificación para determinar:

Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío
Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío















③ 、

Finalmente, nos integramos para obtener la consulta final sql, es decir, cuando el resultado de la consulta A está vacío, tomamos n = 1, cuando el registro de consulta A no está vacío, tomamos n = A número total de registros de consulta, y finalmente rownum <= La condición de consulta de n se escribe en la consulta B para obtener el resultado deseado, de la siguiente manera:

Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío
Cómo mostrar un registro vacío cuando el resultado de la consulta SQL Oracle está vacío


















Este artículo se reproduce en: https://jingyan.baidu.com/article/73c3ce28178ae8e50343d91e.html

28 artículos originales publicados · Me gusta 15 · Visitas 110,000+

Supongo que te gusta

Origin blog.csdn.net/z3h0a5n8g8x9i9a2o3/article/details/79662949
Recomendado
Clasificación