В тази статия ще обсъдим няколко начина за разделяне на разделената стойност на низа. Тя може да бъде постигната с помощта на множество методи, включително.
- Използване на функцията STRING_SPLIT за разделяне на низа
- Създайте дефинирана от потребителя функция с таблична стойност за разделяне на низа,
- Използвайте XQuery, за да разделите стойността на низа и да трансформирате разделен низ в XML
На първо място, трябва да създадем таблица и да вмъкнем в нея данни, които ще се използват и в трите метода. Таблицата трябва да съдържа един ред с идентификатор на поле и низ с разделители в него. Създайте таблица с име „студент“, като използвате следния код.
СЪЗДАВАНЕ НА ТАБЛИЦА студент (ID INT IDENTITY (1, 1), student_name VARCHAR (MAX))
Вмъкнете имената на учениците, разделени със запетаи, в един ред, като изпълните следния код.
ВЪВЕДЕТЕ В СТОЙНОСТИ на студент (име_на студент) ('Монрой, Монтанез, Маролахакис, Негли, Олбрайт, Гарофоло, Перейра, Джонсън, Вагнер, Конрад')
Създаване на таблици и вмъкване на данни
Проверете дали данните са вмъкнати в таблицата или не, като използвате следния код.
изберете * от студент
Проверете дали данните са вмъкнати в таблицата „студент“
Метод 1: Използвайте функцията STRING_SPLIT, за да разделите низа
В SQL Server 2016, „STRING_SPLIT“ Въведена е функция, която може да се използва със ниво на съвместимост 130 и по-високо. Ако използвате 2016 SQL Server версия или по-нова, можете да използвате тази вградена функция.
освен това „STRING_SPLIT“ въвежда низ, който има разделителни поднизове и въвежда един символ, който да се използва като разделител или разделител. Функцията извежда таблица с една колона, чиито редове съдържат поднизовете. Името на изходната колона е „ Стойност ” . Тази функция получава два параметъра. Първият параметър е низ, а вторият е разделител или разделител, въз основа на който трябва да разделим низа. Изходът съдържа таблица с една колона, в която присъстват поднизове. Тази изходна колона е наречена „Стойност“ както виждаме на фигурата по-долу. Освен това „STRING SPLIT“ Функцията table_valued връща празна таблица, ако входният низ е NULL.
Ниво на съвместимост на базата данни:
Всекибаза данниесвързанисда сесъвместимостниво.Топозволяванабаза данниповедениеда себъдасъвместимис thеособеноSQLСървърверсиятобягаНа.
Сега ще извикаме функцията “string_split” за разделяне на низа, разделени със запетаи. Но нивото на съвместимост беше по-малко от 130, поради което беше повдигната следваща грешка. „Невалидно име на обект„ SPLIT_STRING ““
Възниква грешка, ако нивото на съвместимост на базата данни е по-ниско от 130 „Невалидно име на обект split_string“
По този начин трябва да зададем ниво на съвместимост на базата данни на 130 или по-високо. Затова ще следваме тази стъпка, за да зададем нивото на съвместимост на базата данни.
- На първо място задайте база данни на “single_user_access_mode”, като използвате следния код.
ALTER DATABASE SET SET SINGLE_USER
- На второ място, променете нивото на съвместимост на базата данни, като използвате следния код.
ALTER DATABASE SET COMPATIBILITY_LEVEL = 130
- Върнете базата данни в режим за многопотребителски достъп, като използвате следния код.
ALTER DATABASE SET MULTI_USER
ИЗПОЛЗВАЙТЕ [master] GO ALTER DATABASE [bridge_centrality] SET SINGLE_USER ALTER DATABASE [bridge_centrality] SET COMPATIBILITY_LEVEL = 130 ALTER DATABASE [bridge_centrality] SET MULTI_USER GO
Резултатът ще бъде:
Променете нивото на съвместимост на 130
Сега изпълнете този код, за да получите необходимия резултат.
DECLARE @string_value VARCHAR (MAX); SET @ string_value = 'Монрой, Монтанез, Маролахакис, Негли, Олбрайт, Гарофоло, Перейра, Джонсън, Вагнер, Конрад' SELECT * ОТ STRING_SPLIT (@string_value,