OK, what you need to do is add that Split function to your database. That will allow you to handle the "|" delimited lists(seriously Kentico, how about using comma's like everyone else), and the query snippet I used above is your template for a custom query, which can be used in a repeater with custom query webpart. At which point you can pass in your WHERE parameters manually, or by using a custom filter.
The link above shows this function and the query is an example of what you would use.
So in your case it may look something like:
SELECT ##TOPN## ##COLUMNS## FROM View_custom_Category_Joined
CROSS APPLY dbo.Custom_Fn_ColumnSplit(View_custom_Category_Joined.Specialty,'|') specialItem
WHERE (##WHERE##) ORDER BY ##ORDERBY##
The reason I am using the joined view is because that returns node data as well as your document type(Category) data, which allows you to treat it like any other type. Using this method, you will have to create your own "detail" page as selected item transformations do not work with query repeaters.
I will check this throughout the day and try to help you as much as possible.