Sorting characters with umlaut
You can specify this style of sorting by loading biblatex
with the sortlocale=de_DE_phonebook
option:
\usepackage[sortlocale=de_DE_phonebook]{biblatex}
I'm not sure about doing it on a per-entry basis using locales though. You could do it using a source map, but that seems like a bad idea.
It is probably better to sort all entries with the same global scheme as in David's answer. Using different sorting rules can massively confuse a reader (whom you should not expect to know the sorting quirks of all cited authors' native languages), this might not become apparent in short list where the different sorting rules only impact letters that are not word initial, but it can be quite confusing if two "Ü"s get sorted at different ends of the bibliography because one is German and one is Estonian.
But theoretically you can restrict the conversion of umlauts to German entries (as marked in the langid
field). For these entries we do the 'ä'->'ae' etc. conversions ourselves and store the result in the sortname
field.
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{sturm, author = {Sturm}}
@book{stutzel, author = {Stützel}, langid={ngerman}}
@book{basel, author = {Basel}}
@book{bassel, author = {Baßer}, langid={ngerman}}
@book{basta, author = {Basta}}
@book{oesel, author = {Ösel}, langid={ngerman}}
@book{pinguino, author = {Pingüino}}
@book{pingufin, author = {Pingufin}}
@book{pinguzzo, author = {Pinguzzo}}
\end{filecontents}
\usepackage{biblatex}
\addbibresource{\jobname.bib}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[foreach={author,editor,translator}]{
\step[fieldsource=langid, match=\regexp{\A(n)?((swiss)?german|austrian)\Z}, final]
\step[fieldsource=\regexp{$MAPLOOP},
match=\regexp{(([aouAOU]\x{0308})|\x{00df})},
final]
\step[fieldset=sortname, origfieldval, final]
\step[fieldsource=sortname, match=\regexp{(a|o|u|A|O|U)\x{0308}}, replace={$1e}]
\step[fieldsource=sortname, match=\regexp{\x{00df}}, replace={ss}]
}
}
}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
Note how Baßer's "ß" is sorted as "ss" so it ends up before Basta. Stützel's "ü" is sorted as "ue" and thus it goes before Sturm. Pingüino is Spanish and not touched, so it sorts after Pingufino (and not before as if it were converted to Pingueino).