Buscar clave principal de una tabla en una lista separada por comas

Me han encomendado la tarea de crear un informe basado en una estructura de tabla mal diseñada.

Considere las siguientes dos tablas. Contienen técnicas que a cada persona le gusta realizar en cada gimnasio. Tenga en cuenta que una persona única puede aparecer en varias filas en la tabla PERSONAL:

PERSONNEL
+-----+-----+-------+--------+-----------+
| ID  | PID | Name  | Gym    | Technique |
+-----+-----+-------+--------+-----------+
| 1   | 122 | Bob   | GymA   | 2,3,4     |
+-----+-----+-------+--------+-----------+
| 2   | 131 | Mary  | GymA   | 1,2,4     |
+-----+-----+-------+--------+-----------+
| 3   | 122 | Bob   | GymB   | 1,2,3     |
+-----+-----+-------+--------+-----------+

TECHNIQUES
+-----+------------+
| ID  | Technique  |
+-----+------------+
| 1   | Running    |
+-----+------------+
| 2   | Walking    |
+-----+------------+
| 3   | Hopping    |
+-----+------------+
| 4   | Skipping   |
+-----+------------+

Lo que tengo problemas para encontrar es una consulta de MSSQL que me dará una lista de todas las personas en la tabla que está realizando una determinada técnica.

Por ejemplo, digamos que quiero una lista de todas las personas a las que les gusta saltar. Los resultados deseados serían:

PREFERS_SKIPPING
+-----+-------+--------+
| PID | Name  | Gym    |
+-----+-------+--------+
| 122 | Bob   | GymA   |
+-----+-------+--------+
| 131 | Mary  | GymA   |
+-----+-------+--------+

Igualmente saltando:

PREFERS_HOPPING
+-----+-------+--------+
| PID | Name  | Gym    |
+-----+-------+--------+
| 122 | Bob   | GymA   |
+-----+-------+--------+
| 122 | Bob   | GymB   |
+-----+-------+--------+

Puedo romper las cadenas fácilmente en ColdFusion, pero esa no es una opción debido al tamaño de la tabla PERSONAL. ¿Alguien puede ayudar?

Respuestas a la pregunta(4)

Su respuesta a la pregunta