sql >> Database teknologi >  >> RDS >> Oracle

ORACLE Vælg Distinct returnere mange kolonner og hvor

Hvis det er tilstrækkeligt at vælge disse 2 kolonner (navn og kol1) kan du bruge:

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

eller

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

I tilfælde af at du har brug for alle værdier, men du er ligeglad med, hvilken en for de flere poster, der opfylder dine kriterier, du får (f.eks. Dan 2 2 1 eller Dan 2 1 3), kan du bruge denne (den vil registrere den første af disse poster baseret på rækkefølge pr. kriterier):

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. SQL-forespørgsel for at finde post med ID, der ikke er i en anden tabel

  2. Vælg en række og rækker rundt om den

  3. Kald til udefineret funktion pg_connect() - Wamp

  4. ORA-00604 ORA-12705