Использование SQL Server 2008Как разбить значение строки
Я хочу разделить строку точкой с запятой. Строковое значение имеет точку с запятой, иногда без точки с запятой.
Пример # 1:
String = abceder-ere1212;eferere2121212 (with Semicolon)
Выход
string1 = abceder-ere1212
string2 = eferere2121212
Пример № 2:
String: abcederdfdfd (without Semicolon)
Выход
string1 = abcederdfdfd
string2 = ''
Код ниже работает, , но я хочу использовать в нескольких местах в запросе, нужна функция вместо кода ниже.
DECLARE
@remarks varchar(max),
@vc_pen varchar(max),
@vc_adjust varchar(max)
Select @remarks = remarks
from table1
SELECT
@vc_pen = SUBSTRING(S, 1, P - 1),
@vc_adjust = SUBSTRING(S, P + 1, L - P)
FROM
(SELECT
S = @remarks,
P = CHARINDEX(';', @remarks),
L = LEN(@remarks)) s;
Как написать запрос или функцию для разделения строки? Просьба помочь
Если это всегда 0 или 1 точка с запятой, просто напишите функцию, которая проверяет ее с помощью charindex, а в случае, если она -1, возвращает всю вещь в первой части, а если нет, верните две части, используя левую/правую или подстроку. –