2009-04-06 6 views
1

Il y a une table avec des valeurs comme ceci:T-SQL pour combiner les valeurs de 2 colonnes en un seul avec « Répliquer »

Sets | Reps 
-----+------ 
2 | 10 
3 | 15 
3 | 12 
4 | 8 

je dois combiner ces deux valeurs en une seule dans mon instruction SELECT, je pourrait obtenir

SELECT ... AS Reps FROM Table 

Reps 
------------ 
10,10 
15,15,15 
12,12,12 
8,8,8,8 

Des idées comment faire?

scénario Test:

DECLARE @Test TABLE ([Sets] INT, [Reps] INT); 

INSERT INTO @Test VALUES (2, 10); 
INSERT INTO @Test VALUES (3, 15); 
INSERT INTO @Test VALUES (3, 12); 
INSERT INTO @Test VALUES (4, 8); 

SELECT [Sets], [Reps] FROM @Test; 

// Here is an answer by tpdi: 
SELECT CAST([Reps] AS VARCHAR) + 
     REPLICATE(',' + CAST([Reps] AS VARCHAR), [Sets] - 1) 
     AS [Reps] FROM @Test; 
+0

Je suis curieux, pourquoi faites-vous cela? – tpdi

Répondre

2

Comme ceci:

select substring(replicate(','+cast(Reps as varchar),Sets),2,8000) as Reps 
from Table 
2

select cast (représentants comme varchar) + reproduire ('' + cast (représentants comme varchar), ensembles - 1) à partir du tableau

0

select substring (répétition (CAST ([représentants] comme varchar) + '' [Sets]), 0, LEN (répliquée (CAST ([représentants] comme varchar) + '', [Ensembles])) ) en tant que [représentants] de @Test

+0

Les index de chaîne sont basés sur un et non sur zéro. L'appel de sous-chaîne ne supprime rien lorsque vous utilisez toute la longueur de la chaîne. – Guffa

Questions connexes