Bezdepbonusu7Программирование: статьи и ответы

Вопрос

SQL возвращает полные объекты (*) из отдельных столбцов

Автор вопроса: RafcikОтветов: 1

Я ищу решение, касающееся SQL Query для Oracle DB, которое возвращает объекты DISTINCT full из многих столбцов, например:

SELECT DISTINCT mt.column1, mt.column2, mt.column3 FROM MyTable mt;

Но мне нужны полные объекты, такие как SELECT * FROM MyTable

Есть ли способ получить такой эффект, используя обычные операторы SQL?

Заранее спасибо! :)

  • Ваш вопрос не ясен. Пожалуйста, обновите его, чтобы сообщить нам, что вы хотите. Tim Biegeleisen 09.06.2015
  • Вы можете использовать Group By mt.column1, mt.column2, mt.column3. Это может помочь, если я правильно понимаю вашу проблему. Nikhil Batra 09.06.2015
  • @NikhilBatra, действительно ли Oracle обманывает, когда дело доходит до GROUP BY? (Как и некоторые другие продукты dbms...) jarlh 09.06.2015
  • Насколько я знаю, oracle - самая честная и искренняя СУБД, соблюдающая все правила, так что назвать ее читерской я не могу :P Nikhil Batra 09.06.2015
  • Вы хотите исключить строки со значениями NULL в любом из столбцов таблицы? Radu Gheorghiu 09.06.2015

sqloracledistinct

Ответы

Ответ 1 · рейтинг 1 · shA.t

Я думаю, вы ищете такой запрос:

SELECT *
FROM (
    SELECT
        *, ROW_NUMBER() OVER (PARTITION BY mt.column1, mt.column2, mt.column3 ORDER BY mt.column1, mt.column2, mt.column3) As Seq
    FROM
        MyTable mt) AS DT
WHERE
    Seq = 1;

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы