T-SQL для объединения значений двух столбцов в один с «replicate» - PullRequest
1 голос
/ 07 апреля 2009

Существует таблица с такими значениями:

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

Мне нужно объединить эти два значения в одно в моем операторе SELECT, чтобы я мог получить

SELECT ... AS Reps FROM Table

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

Есть идеи, как это сделать?

Скрипт тестирования:

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;

Ответы [ 3 ]

2 голосов
/ 07 апреля 2009

выбор приведения (повторы как varchar) + репликация (',' + приведение (повторы как varchar), наборы - 1) из таблицы

2 голосов
/ 07 апреля 2009

Как это:

select substring(replicate(','+cast(Reps as varchar),Sets),2,8000) as Reps
from Table
0 голосов
/ 07 апреля 2009

выберите SUBSTRING (REPLICATE (CAST ([Reps] как varchar) + ',', [Sets]), 0, LEN (REPLICATE (CAST ([Reps] как varchar) + ',', [Sets])) ) как [Репс] от @ Test

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...