Ich würde es zweistufig machen:
ERSTENS. Ein neues Feld zur Sortierung einführen, z.B ARTISTSORTORDER
Darin werden die verschiedenen Varianten gespeichert.
-
unverändert, z. B. Jethro Tull
ARTIST = ARTISTSORTORDER -
gedreht wird nach dem ersten Leerzeichen, z. B. Dylan, Bob
(.+?) (.+) -> $2, $1 -
gedreht wird nach dem zweiten Leerzeichen, z. B. Hooker, John Lee
(.+?) (.+) (.+) -> $3, $1 $2 -
gedreht wird vor dem Und-Zeichen, z. B. Mccann, Les & Eddie Harris
(.+?) (.+) & (.+) -> $2, $1 & $3
und Varianten davon (alles mit 'regulären Ausdrücken')
3. gedreht wird vor dem ft.
(.+?) (.+) ft. (.+) -> $2, $1 ft. $3
Die verschiedenen Varianten müssen natürlich manuell markiert und angewandt werden. Dazu gibt es keine vorgefertigte Datenbank.
ZWEITENS. In ein weiteres neues Feld zur Buchstaben-Vorsortierung (ich habe dafür PARTINSET genommen) kommt dann
$upper($left(%artistsortorder%,1))
Mit %partinset% - %artist% - %album% - %track%. %title%
hast Du dann eine Ordnung nach ABC des 'Nachnamens', ohne den ARTIST-Namen verändern zu müssen.