2016-03-16 5 views
0

У меня есть таблица с столбцом «Длинное описание», как правило, данные выглядят следующим образом.Анализ данных атрибутов из столбца SQL Server

Основание стены, 12 "H. x 20" W. x 8 "проекция. Оцинкованная. См. Номер модели SV208 (SKU 100002) для обложки крышки фундамента. № FV208-12: Высота: 12" , Ширина: 20 ", Проецирование: 8", Тип: Площадь основания, Материал: Оцинкованный, Pkg Кол-во: 1

То, что я пытаюсь сделать, это разобрать атрибуты конца. Например, после «обложки стены». и начиная с "Нет" Я хотел бы извлечь следующее. (Ниже) Некоторые примечания. Струна '. Нет» всегда начинается атрибуты в этом столбце. Все атрибуты разделяются столбцами. Имена атрибутов различаются, и количество атрибутов на продукт также отличается. Есть ли способ сделать это с помощью T-SQL?

No. FV208-12: 
Height: 12" 
Width: 20" 
Projection: 8" 
Type: Foundation Area Wall 
Material: Galvanized 
Pkg Qty: 1 

ответ

1

Вы можете использовать вариацию следующие добиться того, что я считаю, что вы пытаетесь достичь:

DECLARE @StartAttributesKey VARCHAR(50) = 'area wall cover. ' , 
    @LongDescription VARCHAR(MAX) = 'Foundation area wall, 12" H. x 20" W. x 8" projection. Galvanized. Refer to model No. SV208 (SKU 100002) for foundation area wall cover. No. FV208-12: Height: 12", Width: 20", Projection: 8", Type: Foundation Area Wall, Material: Galvanized, Pkg Qty: 1'; 

SELECT REPLACE(SUBSTRING(@LongDescription, CHARINDEX(@StartAttributesKey, @LongDescription, 0) + LEN(@StartAttributesKey), 
          LEN(@LongDescription) - CHARINDEX(@StartAttributesKey, @LongDescription, 0)), ',', CHAR(10)); 

Используя это в запросе будет выглядеть следующим образом:

DECLARE @StartAttributesKey VARCHAR(50) = 'area wall cover. ' 
SELECT REPLACE(SUBSTRING(LongDescription, CHARINDEX(@StartAttributesKey, LongDescription, 0) + LEN(@StartAttributesKey), 
           LEN(LongDescription) - CHARINDEX(@StartAttributesKey, LongDescription, 0)), ',', CHAR(10)) 
FROM [someTable] WHERE ID = 1 

Если вы скопируете (или распечатаете) результат, вы увидите каждый атрибут на отдельной строке.

Смежные вопросы