在一个查询中从多个列返回不同的值

时间:2017-03-01 17:36:37

标签: sql database postgresql

我已搜索但我没有找到任何好的答案实际上我得到了明确的值,但问题是我在两列上应用查询它应该返回不同的值,但它返回这些值

Au |FAA303
Au |FAA505

在我的表格中,我希望只显示 Au 一次,因为它现在与 FAA303 {{相关联1}}

我想要的是这样的

FAA505

这是我在postgresql中的查询。我是数据库查询的新手。

Au |FAA303
   |FAA505

1 个答案:

答案 0 :(得分:2)

distinct关键字适用于所有选定字段的组合,而不是仅适用于第一个字段。

在连接到数据库并执行查询的应用程序中,通常会执行抑制重复值的操作。

为了向您展示在SQL中可行,我向您提供此查询,但请考虑在应用程序中执行此操作:

select  case row_number() over (partition by column1 order by column2)
            when 1 then column1
        end as column1,
        column2
from (
    select   distinct column1,
             column2
    from     table_name
    order by column1, column2
)