나는 오류를 반환하기를 기대하고있는 sqlite 쿼리가 실제로 성공하고 있으며이 쿼리가 유효한 이유를 누군가가 지적 할 수 있는지 궁금해했습니다. .union 모두 다른 수의 열을 가진 쿼리
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
)
)
내가 열 수가 다른 두 개의 선택을 unioning하는 오류를 반환 것이라고 생각합니다. 가장 바깥 쪽 SELECT *
을 제거하면 예상 오류가 발생합니다 : SELECTs to the left and right of UNION ALL do not have the same number of result columns
.
SQLite는의 특질처럼 보이는! – Andomar
이상한 - 그것이 무엇을 반환합니까? 누락 된 열에 NULL이 있습니까? –
오우 데모를 확인한 결과 열이 생략되었습니다. –