Како поделити низ разграниченим знаком у СКЛ серверу?

How Split String Delimited Char Sql Server

У овом чланку ћемо размотрити неколико начина за поделу раздвојене вредности низа. То се може постићи коришћењем више метода, укључујући.

  • Употреба функције СТРИНГ_СПЛИТ за поделу низа
  • Направите кориснички дефинисану табеларну функцију за поделу низа,
  • Користите КСКуери да бисте поделили вредност низа и трансформисали раздвојени низ у КСМЛ

Пре свега, треба да направимо табелу и у њу убацимо податке који ће се користити у све три методе. Табела треба да садржи један ред са ИД-ом поља и низом с разграничним знаковима. Направите табелу под називом „студент“ користећи следећи код.



СТВАРИ ТАБЕЛУ студент (ИД ИНТ ИДЕНТИТИ (1, 1), студент_наме ВАРЦХАР (МАКС))

Уметните имена ученика одвојена зарезима у један ред извршавањем следећег кода.



ИНСЕРТ ИНТО студент (студент_наме) ВРИЈЕДНОСТИ ('Монрои, Монтанез, Маролахакис, Неглеи, Албригхт, Гарофоло, Переира, Јохнсон, Вагнер, Цонрад')

Стварање табеле и уметање података



Проверите да ли су подаци убачени у табелу или не, користећи следећи код.

изаберите * од ученика

Проверите да ли су подаци уметнути у табелу „студент“

1. метод: Користите функцију СТРИНГ_СПЛИТ за раздвајање низа



У СКЛ Сервер 2016, „СТРИНГ_СПЛИТ“ уведена је функција која се може користити са нивоом компатибилности 130 и вишим. Ако користите верзију СКЛ Сервер 2016 или новију, можете да користите ову уграђену функцију.

у наставку „СТРИНГ_СПЛИТ“ уноси низ који има раздвојене поднизове и уноси један знак који ће се користити као граничник или сепаратор. Функција даје таблицу са једним ступцем чији редови садрже поднизове. Назив излазне колоне је „ Вредност ” . Ова функција добија два параметра. Први параметар је низ, а други је граничник или сепаратор на основу којег морамо раздвојити низ. Излаз садржи табелу са једним ступцем у којој су присутни поднизови. Именован је овај излазни ступац „Вредност“ као што видимо на доњој слици. Штавише, „СТРИНГ СПЛИТ“ функција табле_валуед враћа празну табелу ако је улазни низ НУЛЛ.

Ниво компатибилности базе података:

Свакабаза податакајеповезансадокомпатибилностниво.Тоомогућујетхебазе податакапонашањедобитикомпатибиланса тхјепосебноСКЛСерверверзијатотрчина.

Сада ћемо позвати функцију „стринг_сплит“ за раздвајање низа одвојених зарезима. Али ниво компатибилности био је мањи од 130, па је подигнута следећа грешка. „Неважеће име објекта„ СПЛИТ_СТРИНГ ““

До грешке долази ако је ниво компатибилности базе података нижи од 130 „Неважеће име објекта сплит_стринг“

Стога морамо поставити ниво компатибилности базе података на 130 или више. Стога ћемо следити овај корак да бисмо поставили ниво компатибилности базе података.

  • Пре свега подесите базу података на „сингле_усер_аццесс_моде“ помоћу следећег кода.
АЛТЕР БАЗЕ ПОДАТАКА ПОДЕШИ СИНГЛЕ_УСЕР
  • Друго, промените ниво компатибилности базе података помоћу следећег кода.
АЛТЕР ДАТАБАСЕ СЕТ ЦОМПАТИБИЛИТИ_ЛЕВЕЛ = 130
  • Вратите базу података у режим вишекорисничког приступа помоћу следећег кода.
АЛТЕР ДАТАБАСЕ СЕТ МУЛТИ_УСЕР
УСЕ [мастер] ГО АЛТЕР ДАТАБАСЕ [бридге_централити] СЕТ СИНГЛЕ_УСЕР АЛТЕР ДАТАБАСЕ [бридге_централити] СЕТ ЦОМПАТИБИЛИТИ_ЛЕВЕЛ = 130 АЛТЕР ДАТАБАСЕ [бридге_централити] СЕТ МУЛТИ_УСЕР ГО

Излаз ће бити:

Промените ниво компатибилности на 130

Сада покрените овај код да бисте добили потребан резултат.

ПРОГЛАШИ @стринг_валуе ВАРЦХАР (МАКС); СЕТ @ стринг_валуе = 'Монрои, Монтанез, Маролахакис, Неглеи, Албригхт, Гарофоло, Переира, Јохнсон, Вагнер, Цонрад' СЕЛЕЦТ * ФРОМ СТРИНГ_СПЛИТ (@стринг_валуе,