У меня есть столбец с именем Адрес в таблице.У меня есть такие значения, как
12-15 Hardley Street
2A-C Hardley Street
A-2c Hardley Street
A-B Hardley Street
Я должен сохранить дефис (-) без изменений в первых трех строках.
т.е. если в слове есть число, которое содержит дефис(-), я должен оставить его, иначе я должен заменить его пробелом.
Таким образом, столбец следует заменить, как показано ниже
12-15 Hardley Street
2A-C Hardley Street
A-2c Hardley Street
A B Hardley Street
Мой маленький мозг не может этого понять.Любая помощь, пожалуйста.
PS: Я также хотел бы добавить, что нет необходимости, чтобы первое слово содержало дефис.
Данные могут быть как
Hardley Street 2A-C
или
2A-C
Спасибо всем за ваш ответ и комментарии.
Был еще один предварительный условие, которое я должен сделать в запросе на обновление.
declare @data nvarchar(200)
set @data='12-12 ORANGE-RED'
select @data=
case left(@data,charindex(' ',@data))
when '' then
CASE PATINDEX ('%[0-9]%',@data)
when 0 then replace(@data,'-',' ')
else @data
END
else
CASE PATINDEX ('%[0-9]%',left(@data,charindex(' ',@data)))
when 0 then replace(left(@data,charindex(' ',@data)),'-',' ')+'-- LEFT MOST WORD REPLACE'
else
CASE charindex (' ',substring(@data,charindex(' ',@data)+1,len(@data)))
WHEN 0 THEN
CASE PATINDEX ('%[0-9]%',substring(@data,charindex(' ',@data)+1,len(@data)))
when 0 then left(@data,charindex(' ',@data))+ replace(substring(@data,charindex(' ',@data)+1,len(@data)),'-',' ') +'--RIGHT MOST REPLACE'
else @data + '--struggling here'
END
END
END
end
where @data like '%-%'
select @data
Я пробовал вышеизложенное. Я буду обновлять таблицу как
update tblname set @columnName=
--lines of coding
where @columnName like '%-%'
Я не могу решить эту проблему, и, к сожалению, данные будут противоречивыми.
Я предположил, что данные состоят из двух слов, таких как
2A-C Hardley Street
A-2c Hardley Street
A B Hardley Street
Но клиент сказал, что он будет иметь данные как
Hardley Street 22-23 BO'NESS
A-2c Hardley Street
Hardley Street 12B Stratford-upon-avon
Я не могу создать функциюПричина в том, что мы собираемся обновить таблицу и отформатировать ее.Если я создаю функцию, которую я должен вызывать для каждой другой строки, которая отнимает много времени.
Пожалуйста, не предлагайте SSIS, поскольку это уже исключено.
Любые идеи будут оченьполезно.