2016-07-18 1 views
0

Я работаю над набором данных для жалоб & Я ищу подходящие ключевые слова из словарного словаря с набором данных.Sql: Несколько ключевых слов поиск жалоб набор данных

Вот словарь ключевых слов -

Пример ключевых слов Словарь

-------------------------

дебетовой карты

Кредитные карты

ATM

Кредиты

Образец данных набор -

enter image description here

И, Sample Output -

enter image description here

То есть, я хотел бы, чтобы ключевые слова из ключевой словарный словарь, который будет соответствовать снова t столбец «описание жалобы» в моем наборе данных. И я хотел бы, чтобы в столбце «Ключевые слова» отображались только совпадающие ключевые слова & количество ключевых слов, совпадающих по столбцу «Граф».

Это всего лишь образец &. Мой фактический набор данных огромен, и он может включать в себя «Описание жалобы» на иностранном языке. Можете ли вы помочь мне в том, как это сделать?

Большое спасибо!

+0

Возможно, мы сможем «Можете ли вы помочь мне в том, как это сделать?» однако неясно, что именно вы пытаетесь сделать. Здесь отличное место для начала. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

+0

Только что отредактировал описание проблемы. Надеюсь, теперь это ясно. Благодарю. – 0nir

ответ

3

Предположим, что ваша таблица данных образцов - [Sample Data-set], а ваши ключевые слова сохранены в таблице под названием [Keyword] (с названием колонки Keyword). Попробуйте следующее:

WITH CTE AS 
(
SELECT Detail.*, [Keywords Matched] = STUFF((select ',' + Keyword 
    FROM KEYWORD as b 
    WHERE Detail.[Complaint Description] like '%' + b.Keyword + '%' 
    ORDER BY Keyword DESC 
    FOR XML PATH('')), 1,1,'') 
FROM [Sample Data-set] as Detail 
GROUP BY Detail.BranchID, Detail.Portfolio, Detail.[Complaint Description] 
) 
SELECT *, len([Keywords Matched]) - len(replace([Keywords Matched], ',','')) + 1 as [Count] 
FROM CTE 
GROUP BY BranchID, Portfolio, [Complaint Description], [Keywords Matched] 
+0

Решение работало идеально. Спасибо !! – 0nir