I have table System
component | subcomponent (foreign key with subsystem table) ----------+------------- cpu | 1 monitor | lcd | keybord | mouse
It's possible using e.g. a left join and some of the string formatting functions:
select ... as parent, ' -- ' || coalesce(..., '') as child
from ... left join ... on ...
You could also union things instead, etc. to get exactly what you requested.
BUT you really ought to leave that up to the view, as already suggested.