Мне нужна помощь. Вопрос о SQL для CHARINDEX, PATINDEX, SUBSTRING, LEFT и RIGHT.
У меня есть строки, которые мне нужно разделить в зависимости от положения и разделителя. Используя некоторые из них в качестве имени столбца, а другую часть в качестве данных. и сгруппировать это на основе идентификатора строки. И затем суммируйте значения, если необходимо.
Пример данных, ID, строка
1 20:4:10:1:20:3:
2 20:1:
3 10:3:
4 30:4:40:1:50:3:
И требуемый результат
id 10 20 30 40 50
1 1 7
2 1
3 3
4 4 1 3
Данные:
CREATE TABLE #Split (ID int, SplitString varchar(450))
Insert into #Split (ID, SplitString) values
(1, '20:4:10:1:20:3:'),
(2, '20:1:'),
(3, '10:3:'),
(4, '30:4:40:1:50:3:')
select * From #Split
DROP TABLE #Split
Любая помощь будет принята с благодарностью!
Данные также могут быть такими:
CREATE TABLE #Split (ID int, String1 varchar(10), String1Quantity int, String2 varchar(10), String2Quantity int, String3 VARCHAR(10), String3Quantity int, String4 varchar(10), String4Quantity int, String5 varchar(10), String5Quantity int)
Insert into #Split (ID, String1, String1Quantity, String2, String2Quantity, String3, String3Quantity, String4, String4Quantity, String5, String5Quantity) values
(1,'20',4,'10',1,'20',3, null, null, null, null),
(2,'20',1,null,null,null,null, null, null, null, null),
(3,'10',3,null,null,null,null, null, null, null, null),
(4,'30',4,'40',1,'50',3, null, null, null, null)
select * From #Split
DROP TABLE #Split