Как разрезать строку на части в SQL по некоторому символу

Время чтения - менее одной минутыДата публикации 13.04.2021

Функция позволяет извлечь часть строки из другой строки по разделителю. 

Пример использования: 

select dbo.str_splitPart('111,222,333', ',', 1) -- 111
select dbo.str_splitPart('111,222,333', ',', 2) -- 222,333

@part - либо 1, либо 2

ALTER function [dbo].[str_splitPart] (
	@value nvarchar(max), 
	@divider nvarchar(12) = ',',
	@part int = 2	
	) 
returns nvarchar(max) as
begin

declare @res nvarchar(max) = ''

if(CHARINDEX(@divider,@value)>0) begin
	if(@part=1) begin
		set @res = LEFT(@value,CHARINDEX(@divider,@value)-1)
	end else
	begin 
		set @res = RIGHT(@value,LEN(@value) - CHARINDEX(@divider,@value) -(LEN(@divider)-1))
	end
end else begin
	if(@part=1) begin
		set @res = @value
	end else
	begin 
		set @res = ''
	end
end

return @res
end
Насколько полезной была статья?

Что еще посмотреть по SQL Server

Как запустить SQL сценарий сразу на нескольких БД

Индексы SQL Server. Поиск дубликатов

Запрос для получения SQL всех индексов для таблиц базы данных SQL Server

Как перестроить все индексы на базе SQL Server

Конвертация из строки в таблицу в SQL Server

Выполнение прямого запроса к URL из SQL

SQL Server Как установить у таблицы описание (MS Description)

Как получить текущего юзера БД

Как хранить в 1 поле таблицы БД значения разных типов?

Генерация MD5 в SQL Server

Как привести телефон в нормализованный вид

Как форматировать вывод числа с разделителями

Ищем партнеров-разработчиков на T-SQL и PL/pgSQL

Прямая работа с заказчиками как ИП или самозанятый. Нужно знать только SQL и HTML
Falcon Space - платформа для создания сайтов с личными кабинетами
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Запрос расчета стоимости веб-проекта на базе Falcon Space
Если видео Youtube плохо грузится, то попробуйте найти видео в ВК видео на канале Falcon Space
Сайт использует Cookie, Яндекс Метрику. Используя сайт, вы соглашаетесь с правилами сайта. См. Правила конфиденциальности и Правила использования сайта OK