检查列是否存在

Check if column exists

这类似于我使用的代码:

SELECT id, col1 FROM table1
UNION ALL
SELECT id, col2 FROM table2
UNION ALL
SELECT id, col3 FROM table3
...

例如table2中的col2不存在,如何使这个查询工作而不是查询不存在的列?

使用 NULL 或任何其他值并将其别名以匹配列列表定义:

SELECT id, col1 FROM table1
UNION ALL
SELECT id, NULL AS col2 FROM table2
UNION ALL
SELECT id, col3 FROM table3