У меня есть столбец с последовательностью. Мне нужно найти пробелы в последовательности и запустить материал для создания отдельных списков, где происходит пробел. Я создал cte с min и max для использования с вещами .. Хотя я не могу понять, как определить пробелы в последовательности. Пожалуйста помогите. Вот те же данные:
CREATE TABLE Table1
(
sku varchar(50),
year float,
make varchar(50),
model varchar(50),
model2 varchar(50)
);
INSERT INTO Table1 (sku, year, make, model, model2)
VALUES ('AVS1234', '2000', 'Xbox', 'pilot', 'ex'),
('AVS1234', '2001', 'Xbox', 'pilot', 'ex'),
('AVS1234', '2014', 'Xbox', 'pilot', 'ex');
WITH firstpass AS
(
SELECT
sku,
MIN(year) AS min,
MAX(year) AS max,
make, model, model2
FROM
Table1
GROUP BY
sku, make, model, model2
)
SELECT
sku,
CAST([min] AS NVARCHAR(10)) + '-' +
CAST([max] AS NVARCHAR(10)) + ' ' + make + ' ' + model +
STUFF((SELECT DISTINCT ', ' + COALESCE([model2], '') + ''
FROM firstpass
WHERE sku = a.sku
FOR XML PATH (''), TYPE).value('(./text())[1]', 'VARCHAR(MAX)'), 1, 1, '') AS NamesList2,
ROW_NUMBER() OVER (PARTITION BY sku ORDER BY sku asc) AS RowNum
FROM
firstpass AS a
GROUP BY
sku, [min], [max], make, model;
DROP TABLE table1
Ожидаемый результат:
sku Nameslist Row
-------------------------------------------
AVS1234 2000 - 2001 xbox Pilot ex 1
AVS1234 2014 xbox Pilot ex 2