UNION语句中添加NULL报错,求正确SQL写法
解决UNION语句中插入NULL值的语法错误
你的报错是因为UNION后面必须跟完整的SELECT查询语句,直接写NULL不符合SQL语法规范。要插入NULL值,需要把NULL放到SELECT子句里。
修正后的完整SQL如下:
with table_a as (select '1' as column_name union select '2' union select NULL as column_name) select * from table_a;
补充说明:
- 由于CTE中第一个
SELECT已经定义了列名column_name,后面的SELECT NULL可以省略别名(部分数据库会自动继承列名),但显式写出as column_name能让代码更清晰,避免不同数据库的兼容性问题。 - 如果不需要自动去重,可使用
UNION ALL替代UNION,能获得更好的性能(具体根据业务需求选择)。
内容的提问来源于stack exchange,提问作者Saqib Ali
相关产品推荐
相关产品推荐

