Я не совсем понимаю, что вы подразумеваете под «умными» направляющими, но почему бы просто не преобразовать его в char и не вытащить части по позициям?
create table t(myguid uniqueidentifier);
declare @p tinyint = 5;
select case @p
when 1 then left(c.v, 8)
when 2 then substring(c.v, 10, 4)
when 3 then substring(c.v, 15, 4)
when 4 then substring(c.v, 20, 4)
when 5 then right(c.v, 12)
end
from t
cross apply (select cast(t.myguid as char(36))) c(v)