【问题标题】:SQL DISTINCT [Alternative Using]SQL DISTINCT [替代使用]
【发布时间】:2010-12-24 13:29:18
【问题描述】:

我有一个关于 Oracle 的简单查询。

SELECT DISTINCT City, Name, Surname FROM Persons

对于没有DISTINCT 的同一查询,是否有任何替代sql 查询?

【问题讨论】:

  • 在我的编译器中,不同的单词奇怪地出现错误:s

标签: sql database oracle distinct


【解决方案1】:

看看this article

例如;

select City
from (
  select City,
         row_number() over 
           (partition by City
            order by City) rownumber
    from Persons
         ) t
   where rownumber = 1

【讨论】:

    【解决方案2】:
    SELECT City, Name, Surname FROM Persons
    UNION
    SELECT City, Name, Surname FROM Persons
    

    【讨论】:

    • 这只会把整个列表做两次。
    • @MPelletier:这可行……尽管它可能不是最有效的方法。如果使用UNION ALL,你只会得到整个列表两次
    • @MikeyByCrikey 该死的,我从来没有看到过这种情况! @Diederik Hoogenboom,很抱歉误判了这个答案。
    • @MPelletier 没问题。但这当然不是最有效的方法。这对我来说似乎是一个哲学问题,所以我只是想我在更复杂的答案旁边提到了。
    【解决方案3】:
    SELECT First(City), First(Name), First(Surname)
    FROM Persons
    GROUP BY City, Name, Surname
    

    【讨论】:

      猜你喜欢
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      相关资源
      最近更新 更多