Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Возможно ли упростить код?

$
0
0
Здравствуйте.
При создании поля использую следующий код:
SELECT  (CASE WHEN Owner LIKE '[А-Я][А-Я]%' COLLATE Cyrillic_General_BIN OR Owner LIKE '%"%' THEN '' ELSE STUFF(REPLACE(REPLACE(REPLACE(LTRIM(RTRIM(Owner)), ' ', CHAR(1) + ' '), ' ' + CHAR(1), ''), CHAR(1), ''),1,CHARINDEX(' ',REPLACE(REPLACE(REPLACE(LTRIM(RTRIM(Owner)), ' ', CHAR(1) + ' '), ' ' + CHAR(1), ''), CHAR(1), ''),1),'') END) AS LastName FROM Table


Таблица с клиентами, которые записаны как Иванов Иван Иванович или ООО "Рога и копыта". Использую
CASE - для исключения организаций
LTRIM(RTRIM(Owner) - для удаления пробелов в начале и конце строки
REPLACE(REPLACE(REPLACE... - для удаления лишних пробелов внутри строки
STUFF - для обрезки фамилий

Код работает, но больно уж громоздкий получился, можно ли его как-то упростить, сделать компактнее?

Viewing all articles
Browse latest Browse all 7251