Oracle
 sql >> база данни >  >> RDS >> Oracle

ORACLE Изберете Distinct връща много колони и къде

Ако избирането само на тези 2 колони (име и колона1) е достатъчно, можете да използвате:

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

или

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

В случай, че се нуждаете от всички стойности, но нямате нищо против коя за множеството записи, отговарящи на вашите критерии, които получавате (напр. Дан 2 2 1 или Дан 2 1 3), можете да използвате това (то ще запише първия от тези записи въз основа на ред от критерии):

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. Поправката на Flyway хвърля FlywaySqlException с Oracle DB

  2. Експортирайте резултатите от заявката на Oracle в HTML файл, когато използвате SQLcl

  3. Как да инсталирам oracle instantclient и pdo_oci на ubuntu машина?

  4. Зависимост от Oracle Forms

  5. LINQ Използвайте като вместо (( NVL(INSTR(x, y), 0) ) =1)