Estoy usando un procedimiento almacenado en MySQL, con una instrucción CASE.¿Cómo seleccionar un conjunto de resultados vacío?
En la cláusula ELSE de CASE (equivalente a predeterminado:) deseo seleccionar y devolver un conjunto de resultados vacío, evitando arrojar un error SQL al no manejar el caso ELSE, y en su lugar devolver un conjunto de resultados vacío como si una consulta normal no hubiera devuelto ninguna fila.
Hasta ahora he conseguido hacerlo usando algo como:
Select NULL From users Where False
Pero tengo que nombrar a una tabla existente, como 'usuarios' en este ejemplo. Funciona, pero preferiría una forma más elegante que no se rompa si eventualmente se renombra o se quita el nombre de la tabla utilizada.
He intentado Select NULL Where False
pero no funciona.
El uso de Select NULL
no devuelve un conjunto vacío, sino una fila con una columna llamada NULL y con un valor NULO.
¡Realmente sería un esquema extraño que no tenía una sola tabla que pudiera garantizar que existiera! – onedaywhen
Tienes razón. Existen muchas tablas, el problema es que una vez que eliges una tabla, si en el futuro esa tabla se elimina o renombra, el código que escribiste ya no funciona, y estarías acoplando dos piezas del software que no tienen nada. para hacer uno con el otro, sin embargo, un cambio en uno de ellos hace que el otro deje de funcionar.Eso se llama acoplamiento, y el acoplamiento en el software generalmente es una mala idea. – Petruza
@Petruza: En los días en que usaba Access/Jet, mi esquema incluía una tabla auxiliar permanente para este propósito llamada 'RowRowTable'. – onedaywhen