Esta es más fácil. Podrías crear una función que concatene en dependiendo de los valores a_id y p_id que indiques.
O bien usar CROSS APPLY y XQuery:
Código:
SELECT dis.a_id,
LEFT(res.o_id, LEN(res.o_id) - 3) AS o_id, --3 ES LA LONGITUD DE LA CADENA ' - '
dis.p_id
FROM (
SELECT DISTINCT a_id, p_id
FROM A
) AS dis
CROSS APPLY (
SELECT CAST(o_id AS VARCHAR(12)) + ' - ' AS '*'
FROM A
WHERE a_id = dis.a_id AND p_id = dis.p_id
FOR XML PATH('')
) AS res(o_id)
Por cierto... ¿qué clase de aplicación estás haciendo? Lo que solicitas es poco común.