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

Jak mogę wykonać SELECT DISTINCT na wszystkich polach z wyjątkiem BLOB?

SELECT DISTINCT MOVIES.TITLE, CERTIFICATIONS.ID, PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS
FROM [...]

Odróżnienie jest stosowane do wszystkich kolumn z listy WYBIERZ. I tak, nie możesz używać LOB w GROUP BY, UNION, DISTINCT itp., ponieważ Oracle nie wie, jak porównywać różne LOBy

Jeśli chcesz pobrać również BLOB, możesz spróbować czegoś takiego:

SELECT MOVIES.TITLE, CERTIFICATIONS.ID, 
       PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS, IMAGES.IMAGE
FROM (     
  SELECT MOVIES.TITLE, CERTIFICATIONS.ID, 
         PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS, IMAGES.IMAGE,
         row_number() over (partition by MOVIES.TITLE, CERTIFICATIONS.ID, PROJECTION.DAY, TIME_SLOTS.SLOT, PROJECTION.REMAINING_SEATS 
                            order by PROJECTION.DAY, TIME_SLOTS.SLOT) RW
  FROM [...]
) WHERE RW = 1;  

Ale powinieneś zrozumieć, czego szukasz. Na przykład powyższe zapytanie grupuje wszystkie kolumny z wyjątkiem kolumny BLOB, uporządkuj je według jakichś dwóch kolumn i przypisz numer wiersza do każdego wiersza w grupie. Wynikowe zapytanie pobiera tylko pierwszy wiersz w każdej grupie




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wywołać procedurę z parametrem out jako typem tabeli z klasy Java?

  2. Perl DBD::Instalacja modułu Oracle

  3. Utwórz tabelę w procedurze

  4. Określanie lokalizacji odpowiedniego pliku tnsnames.ora

  5. Jak wykonać blok PL SQL w Oracle