2017-02-07 4 views
0

Wir arbeiten mit Oracle-Datenbank. Ich brauche das Ergebnis in sortierter Reihenfolge. Also habe ich eine Abfrage erstellt, die zuerst nach ID sortiert, dann habe ich Abfrage über Unterabfrageergebnis angewendet, um distinct para zu erhalten.Get eindeutiges Ergebnis von geordneten Ergebnis der Unterabfrage in Oracle

Abfrage ist:

select distinct(para) 
from (
    select para, id 
    from book 
    where title='2' 
     and chapter_id='2' 
     and subchap='1' 
     and para is not null 
    order by id) 
order by para 

Diese Rückgabeliste als:

a 
aa 
aaa 
bb 
c 
d 
dd 

Aber ich will diese Liste als:

a 
c 
d 
aa 
bb 
dd 
aaa 

Ich möchte Liste von verschiedenen para-Liste? Wie kann ich dies mithilfe der Oracle-Abfrage erreichen?

Antwort

1

Wenn Sie möchten, erhalten para s durch ihre IDs sortiert. Sie können die folgende Abfrage versuchen:

SELECT para 
FROM book 
WHERE title='2' 
    and chapter_id='2' 
    and subchap='1' 
    and para is not null 
GROUP BY para 
ORDER BY MIN(id) 

Hinweis, dass es auf MIN(id) so sortiert, wenn para mehrere IDs hat, wird es durch die kleinste sortiert werden.

Wenn para, id Kombination ist einzigartig, Sie können Gruppe von beiden Feldern:

SELECT para 
FROM book 
WHERE title='2' 
    and chapter_id='2' 
    and subchap='1' 
    and para is not null 
GROUP BY para, id 
ORDER BY id 
+0

Danke für Ihre Antwort. MIN (ID) Abfrage funktioniert in meinem Fall gut, obwohl ich mehrere IDs in Para habe, aber ich brauche nur bestimmte Para eine. –

1

Vielleicht möchte nur durch Länge bestellen erste (zumindest dieser Ansatz entspricht Ihrer Beispiel):

select distinct(para) from 
    (select para, id from book where title='2' and chapter_id='2' and subchap='1' and para is not null) 
    order by length(para), para 

Oder vielleicht möchten Sie von id, in diesem Fall sortieren, müssen Sie etwas wie folgt aus:

select para from 
    (select para, min(id) as minid from book where title='2' and chapter_id='2' and subchap='1' and para is not null group by para) 
    order by minid 
Verwandte Themen