Me encontré con un caso en el que una consulta sqlite que esperaba devolver un error realmente está teniendo éxito y me preguntaba si alguien podría señalar por qué esta consulta es válida .unión todo con consultas que tienen un número diferente de columnas
CREATE TABLE test_table(
k INTEGER,
v INTEGER
);
INSERT INTO test_table(k, v) VALUES(4, 5);
SELECT * FROM(
SELECT * FROM(
SELECT k, v FROM test_table WHERE 1 = 0
)
UNION ALL
SELECT * FROM(
SELECT rowid, k, v FROM test_table
)
)
Me gustaría pensar que unificante dos casillas que tienen un número diferente de columnas devolvería un error. Si elimino el SELECT *
más externo, recibo el error que esperaba: SELECTs to the left and right of UNION ALL do not have the same number of result columns
.
Parece que una peculiaridad en SQLite! – Andomar
Raro, y ¿qué devuelve? NULLs para la columna faltante –
Oh, verifiqué la demostración y omite la columna. –