• Assuming that your fields are always as described you could use. However this probably won't perform as well as the 3 and 4 function methods.

    select parsename(replace(last_name,'_','.'),1)

    With the substring method you don't have to get the exact length of the remaining string, so you could do the following if you are really against hard coding a length

    select substring(last_name, charindex('_',last_name) + 1, len(last_name))