Tournant Séparés par des Virgules, chaîne en lignes individuelles

J'ai une Table SQL comme ceci:

| SomeID         | OtherID     | Data
+----------------+-------------+-------------------
| abcdef-.....   | cdef123-... | 18,20,22
| abcdef-.....   | 4554a24-... | 17,19
| 987654-.....   | 12324a2-... | 13,19,20

est-il une requête où je peux effectuer une requête comme SELECT OtherID, SplitData WHERE SomeID = 'abcdef-.......' qui retourne des lignes individuelles, comme ceci:

| OtherID     | SplitData
+-------------+-------------------
| cdef123-... | 18
| cdef123-... | 20
| cdef123-... | 22
| 4554a24-... | 17
| 4554a24-... | 19

Fondamentalement divisé mes données à la virgule en lignes individuelles?

Je suis conscient que le stockage d'un comma-separated chaîne de caractères dans une base de données relationnelle semble idiot, mais l'utilisation normale de cas dans l'application du consommateur fait que vraiment utile.

Je ne veux pas faire la distinction dans l'application que j'ai besoin de pagination, donc j'ai voulu explorer les options avant de refactoring l'ensemble de l'application.

C'est SQL Server 2008 (non-R2).

InformationsquelleAutor Michael Stum | 2011-03-30