SQL "gruppieren nach" verwenden, Priorität

Ich habe eine Tabelle, wo ich mehrere Namen für eine gegebene id so:

a_table (id int, name varchar(100), Priorität, int);

Brauche ich ein statment, dass die Suche auf Namen, aber stellen Sie sicher, es wird wieder nur 1 Namen für jedes id und name wird der sein, der mit der höheren Priorität.

z.B. wenn meine Daten sind

1, AaaB, 2 
1, AbbB, 1 
1, AccB, 0 
2, foo, 0 
3, AddC, 0 

Möchte ich meine Abfrage für "A%" zurück:

1, AaaB 
3, AddC 

Ich dachte so etwas wie:

select * from a_table where name like 'A%' group by id; 

Aber dies wird nicht garantieren, dass der Wert mit der höheren Priorität ausgewählt.

Irgendwelche Ideen?

Dank,
Stavros

InformationsquelleAutor | 2011-07-04
Schreibe einen Kommentar