J'ai une table comme indiqué ci-requête Sql pour créer la ligne unique à plusieurs rangs
ID Value
----- ----------
1 10,20,30
J'ai besoin du résultat que
ID Value
--- -------
1 10
1 20
1 30
Merci.
J'ai une table comme indiqué ci-requête Sql pour créer la ligne unique à plusieurs rangs
ID Value
----- ----------
1 10,20,30
J'ai besoin du résultat que
ID Value
--- -------
1 10
1 20
1 30
Merci.
Cela fonctionne
;with tmp(Id, value, Data) as (
select Id, LEFT(value, CHARINDEX(',',value+',')-1),
STUFF(value, 1, CHARINDEX(',',value+','), '')
from @Testdata
union all
select Id, LEFT(Data, CHARINDEX(',',Data+',')-1),
STUFF(Data, 1, CHARINDEX(',',Data+','), '')
from tmp
where Data > ''
)
select Id, value
from tmp
order by Id
possible dupliquer Turning a Comma Separated string into individual rows
S'il vous plaît les opérations suivantes:
SELECT A.ID,
Split.a.value('.', 'VARCHAR(100)') AS Value
FROM (SELECT ID,
CAST ('<V>' + REPLACE(Value, ',', '</V><V>') + '</V>' AS XML) AS Value
FROM YourTable
) AS A
CROSS APPLY Value.nodes ('/V') AS Split(a);
Pourquoi vous avez stocké '10,20,30' du tout? N'est-il pas possible de le stocker déjà comme vous le voulez dans le résultat? Donc, vous devriez créer une nouvelle table avec une clé étrangère à la première table. Ce processus est appelé [normalisation] (http://en.wikipedia.org/wiki/Database_normalization). –
Je sais que vous pouvez penser que vous gagnez de la place dans la façon dont vous les stockez, mais vous allez perdre du temps à les afficher. Je suis d'accord avec @Tim, avoir des lignes séparées. Même avoir une autre table pour One-Many ou Many-Many relation. C'est pourquoi nous avons des DB relationnelles. –
Est-il possible d'obtenir le résultat en utilisant sql query? – Merin