2016-03-21 9 views
1

У меня есть столбец с именем «Название». В нем хранятся заголовки Job ex: «java Developer». Я хочу создать другую таблицу, создать ключевые слова из заголовков и сохранить все ключевые слова в ней. Я хочу избавиться от всех специальных символов, некоторых определенных слов типа «a» и «the», сломать строку и сохранить, например, «Java» и «Developer» (заглавные буквы первого символа) в таблице ключевых слов как две разные записи. Как мне это достичь? Какие функции SQL могут помочь мне в этом? любая статья или демонстрация будут оценены. БлагодаряTSQL сложная манипуляция строк

+0

вам нужно использовать функцию разделителя разделитель. Разделите на пробел, затем сохраните результат в другую таблицу. – Squirrel

ответ

2

Вы также можете попробовать что-то вроде этого:

DECLARE @test VARCHAR(50) = ' senior java developer' 

DECLARE @Final VARCHAR(50) 

--Replace all the words you don't need 
SELECT @Final = RTRIM(LTRIM(REPLACE(REPLACE(REPLACE(CONCAT(' ' , LTRIM(@test)), ' a ',''),' the ', ''),' an ', ''))) 

;WITH cte_Replace AS 
(
SELECT 
    SUBSTRING(@Final,1,CHARINDEX(' ',@Final,1) -1) AS Title, 
    SUBSTRING(@Final,CHARINDEX(' ',@Final,1) +1, LEN(@Final) - CHARINDEX(' ',@Final,1) +1) AS RemainingString 

UNION ALL 

SELECT 
    CASE WHEN CHARINDEX(' ',RemainingString,1) != 0 THEN SUBSTRING(RemainingString,1,CHARINDEX(' ',RemainingString,1) -1) ELSE RemainingString END AS Title, 
    CASE WHEN CHARINDEX(' ',RemainingString,1) != 0 THEN SUBSTRING(RemainingString,CHARINDEX(' ',RemainingString,1) +1, LEN(RemainingString) - CHARINDEX(' ',RemainingString,1) +1) ELSE NULL END AS RemainingString 
FROM 
    cte_Replace 
where 
    RemainingString IS NOT NULL 
) 
SELECT 
    UPPER(SUBSTRING(Title,1,1)) + SUBSTRING(Title,2,LEN(Title)-1) AS Title FROM cte_Replace 
2

что-то вроде этого

INSERT INTO KeyWord (keyword) 
SELECT DISTNCT s.word 
FROM tbl t 
CROSS APPLY dbo.SomeDelimiterSplitterFunction(t.Title, ' ') s 
WHERE t.word not in ('', 'a', 'the') 
+0

Спасибо за ваше время, но я должен выглядеть так, как должна выглядеть моя функция SomeDelimiterSplitterFunction? – Iman

+0

здесь автор Jeff http://www.sqlservercentral.com/articles/Tally+Table/72993/ – Squirrel

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