Sql 选择用于在表中选择两列的脚本

Sql 选择用于在表中选择两列的脚本,sql,postgresql,null,union,Sql,Postgresql,Null,Union,我需要帮助编写一个选择脚本,根据条件从两列中选择数据。 喂,我有一张桌子: Table: X Columns: ID, Type , and Old_type 列旧类型具有空值或历史类型值,列类型具有类型值或被覆盖的旧类型值: Id Type Old_type 1 ABC NULL 2 ZYZ BCD 我需要编写一个脚本,从列Type中选择数据,如果Old\u Type列为空,则它应该在单独的行中选择Ty

我需要帮助编写一个选择脚本,根据条件从两列中选择数据。
喂,我有一张桌子:

Table: X 
Columns: ID, Type , and Old_type
旧类型
具有空值或历史类型值,列
类型
具有类型值或被覆盖的
旧类型
值:

Id     Type          Old_type
 1     ABC           NULL
 2     ZYZ           BCD
我需要编写一个脚本,从列
Type
中选择数据,如果
Old\u Type
列为空,则它应该在单独的行中选择
Type
列的值,并在单独的行中选择
Old\u Type
。或者简单地说,我需要以下输出:

Output
Id   Type
1    ABC
2    ZYX
2    BCD
关键在于:

SELECT id, type FROM x
UNION  ALL
SELECT id, old_type FROM x WHERE old_type IS NOT NULL
ORDER  BY id;

Id=3
我假设的结果是否有误?另外,这可能更适合于SO,因为我们更喜欢在dba.SE上处理高级SQL问题。当我发布SQL查询时,我通常会感到困惑,所以有些人建议我在这里发布,说它与DB相关。如何对查询是否高级进行分类?并不总是很清楚。但这似乎是一个基本问题。也许,您可以在这里划清界限:如果您对SQL有经验,但仍然对某个问题感到困惑,那么就到这里来。如果你是初学者,你通常应该去这样的学校。