【问题标题】:TWO RESULTS in SAME ROW in POSTGRESQLPOSTGRESQL 中同一行的两个结果
【发布时间】:2017-08-29 17:48:53
【问题描述】:
select * from Table1
where Condition 1
union 
select select * from Table1
where Condition 2

结果:

NAME    AMOUNT    TYPE   
ABC      --       Account
ABC      200        --

但我需要像

这样的一行结果
NAME     AMOUNT     TYPE
ABC       200       ACCOUNT

在PG中怎么做?

【问题讨论】:

  • 你想要的是JOIN而不是UNION

标签: sql postgresql


【解决方案1】:

根据您的示例数据,这可能有效

SELECT name,
       MAX(amount) amount,
       MAX(type) type
  FROM table1
 WHERE condition 1
    OR condition 2
 GROUP BY name

【讨论】:

    【解决方案2】:

    我已经通过以下方式实现了类似的目标:

    select TABLE_1.DESCRIPTION_COLUMN,
    
    (array(select TABLE_2.INFO_COLUMN from TABLE_2 where TABLE_1.ID = TABLE_2.ID_TABLE_1))[1],
    (array(select TABLE_2.INFO_COLUMN from TABLE_2 where TABLE_1.ID = TABLE_2.ID_TABLE_1))[2]
    
    from TABLE_1
    
    
    WHERE TABLE_1 = 1
    

    来源/帮助:

    https://stackoverflow.com/a/6402163/1856745

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-23
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      相关资源
      最近更新 更多