Как я могу использовать более одного CASE для обновления моих строк в моей таблице? Я пытался написать скрипт по-разному, но я уверен, что синтаксис неправильный. Любая идея, где ошибка?
UPDATE NameToSplit
SET Aliases = CASE LEN(Alias)
WHEN CHARINDEX('.', Alias) + 4 THEN Alias
ELSE STUFF(Alias, CHARINDEX('.', Alias) + 5, 0, '-')END;
CASE LEN(Alias)
WHEN CHARINDEX('.', Alias) + 5 THEN Alias
ELSE STUFF(Alias, CHARINDEX('.', Alias) + 6, 0, '-')END;
CASE LEN(Alias)
WHEN CHARINDEX('.', Alias) + 6 THEN Alias
ELSE STUFF(Alias, CHARINDEX('.', Alias) + 7, 0, '-')END;
CASE LEN(Alias)
WHEN CHARINDEX('.', Alias) + 7 THEN Alias
ELSE STUFF(Alias, CHARINDEX('.', Alias) + 8, 0, '-')END;
CASE LEN(Alias)
WHEN CHARINDEX('.', Alias) + 8 THEN Alias
ELSE STUFF(Alias, CHARINDEX('.', Alias) + 9, 0, '-')END;
CASE LEN(Alias)
WHEN CHARINDEX('.', Alias) + 9 THEN Alias
ELSE STUFF(Alias, CHARINDEX('.', Alias) + 10, 0, '-')END;
Результаты должны быть такими:
Names Alias Aliases
-------------------------------------------------------------------------
idealink.core.usergroup core.usergroup core.user-group
idealink.core.userloginhistory core.userloginhistory core.user-loginhistory
idealink.core.challengecategories core.challengecategories core.challenge-categories
idealink.core.activitydetails core.activitydetails core.activity-details
Длина слова после (основной) разные, поэтому мне нужно было создать разные случаи, чтобы получить все из них.