sql - 选择空字符串作为列时,SQL UNION 考虑了字符数
问题描述
我有两个使用 UNION ALL 组合的表。表 1 有 1 列不存在于表 2 中,表 2 也有 1 列不存在于表 1 中。
起初我不需要表 2 中不在 table1 中的列,我'' as Column1
在第二个选择中做了一个 SELECT 查询。这工作得很好。
但是,现在我还想检索仅存在于 table2 中的列。当我尝试像以前一样做同样的事情时,我最终在该列中只有空值。
结果是查询从第一个 select 语句中考虑了字符数。因此,当我这样做时,我会SELECT ' ' as Column2
得到 table2 中所有值的前 2 个字符。这反过来起作用,因为我首先得到了实际值。但是现在我需要先制作空列我不确定如何最好地做到这一点?当然,我可以只使用一个有 50 个空格之类的字符串作为第一个选择,但肯定有更好的方法吗?
解决方案
你似乎想要:
select t1.col1, t1.col2, t1.col3, null as col4
from table1 t1
union all
select t2.col1, t2.col2, null as col3, t2.col4
from table2 t2;
我建议使用NULL
而不是''
,除非你真的想要一个空字符串。
推荐阅读
- react-native - 打开后立即自动关闭 React Native 应用程序
- codenameone - 带有约束 Numeric 的 TextInput 使应用程序崩溃 - cn1
- abap - 数据库视图的连接条件中列的子字符串
- plesk-onyx - 在 plesk onyx 上将别名升级为主域
- javascript - 如何延迟我的 javascript 代码,直到加载 JSON 文件?
- angular - 如何在角度材料中使用输入类型文件
- javascript - Angular - 为什么单击复选框会触发更改事件绑定到的父选择器的更改事件?
- sql - 如果仅在结果的一列上应用
- python - 读取和删除行格式文本文件 Python
- php - PHP MySQL 数据组