Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORACLE Select Distinct zwraca wiele kolumn i gdzie

Jeśli wystarczy wybrać tylko te 2 kolumny (nazwa i kolumna 1), możesz użyć:

select 
    distinct x.name, x.col1
  from table_name x
  where x.col1 = 2;

lub

select 
    x.name, x.col1
  from table_name x
  where x.col1 = 2
  group by (x.name, x.col1);  

Jeśli potrzebujesz wszystkich wartości, ale nie masz nic przeciwko, którą z wielu rekordów spełniających twoje kryteria otrzymasz (np. Dan 2 2 1 lub Dan 2 1 3), możesz użyć tego (zarejestruje pierwszy z tych rekordów na podstawie kolejności według kryteria):

select xx.name, xx.col1, xx.col2, xx.col3
  from (select 
      x.name, x.col1, x.col2, x.col3, dense_rank() over (partition by x.name order by x.name, x.col1, x.col2, x.col3) rnk
    from table_name x
    where x.col1 = 2) xx
  where xx.rnk = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd SQL ORA 01427

  2. Błąd adaptera protokołu Oracle

  3. Jak wykonać wyzwalacz i procedurę w Oracle?

  4. Narzędzia do generowania diagramu bazy danych/diagramu ER z istniejącej bazy danych Oracle?

  5. Po błędzie wznów następny typ obsługi błędów w Oracle PL/SQL