【问题标题】:Select script for selecting two columns in a table用于选择表中两列的选择脚本
【发布时间】:2014-07-30 19:34:44
【问题描述】:

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

Table: X 
Columns: ID, Type , and Old_type

Old_type 列具有空值或历史类型值,Type 列具有Old_type 的类型值或覆盖值:

Id     Type          Old_type
 1     ABC           NULL
 2     ZYZ           BCD

我需要编写一个脚本,如果 Old_type 列为空,则从列 Type 中选择数据,否则它应该在单独的行中选择 Type 列的值,在单独的行中选择 Old_type 的值。或者只是我需要以下输出:

Output
Id   Type
1    ABC
2    ZYX
2    BCD

【问题讨论】:

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

标签: sql postgresql null union


【解决方案1】:

UNION ALL 成功了:

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

【讨论】:

    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多