W tym artykule omówimy kilka sposobów dzielenia wartości ciągu rozdzielanego. Można to osiągnąć za pomocą wielu metod, w tym.
- Użycie funkcji STRING_SPLIT do podziału ciągu
- Utwórz zdefiniowaną przez użytkownika funkcję wycenianą w tabeli, aby podzielić ciąg,
- Użyj XQuery, aby podzielić wartość ciągu i przekształcić rozdzielany ciąg na XML
Przede wszystkim musimy stworzyć tabelę i wstawić do niej dane, które będą używane we wszystkich trzech metodach. Tabela powinna zawierać pojedynczy wiersz z identyfikatorem pola i ciągiem znaków ze znakami separatora. Utwórz tabelę o nazwie „student”, używając poniższego kodu.
UTWÓRZ TABELĘ ucznia (ID INT IDENTITY (1, 1), student_name VARCHAR (MAX))
Wstaw nazwiska uczniów oddzielone przecinkami w jednym wierszu, wykonując następujący kod.
WSTAWIĆ DO ucznia (nazwisko ucznia) WARTOŚCI („Monroy, Montanez, Marolahakis, Negley, Albright, Garofolo, Pereira, Johnson, Wagner, Conrad”)
Tworzenie tabel i wprowadzanie danych
Sprawdź, czy dane zostały wstawione do tabeli, czy nie, używając następującego kodu.
wybierz * od ucznia
Sprawdź, czy dane zostały wstawione do tabeli „uczeń”
Metoda 1: Użyj funkcji STRING_SPLIT, aby podzielić ciąg
W programie SQL Server 2016 „STRING_SPLIT” wprowadzono funkcję, której można używać z poziomem kompatybilności 130 i wyższym. Jeśli używasz wersji 2016 SQL Server lub nowszej, możesz użyć tej wbudowanej funkcji.
Ponadto „STRING_SPLIT” wprowadza ciąg, który ma rozdzielone podciągi i wprowadza jeden znak, który ma być używany jako ogranicznik lub separator. Funkcja wyprowadza tabelę z jedną kolumną, której wiersze zawierają podciągi. Nazwa kolumny wyjściowej to „ Wartość' . Ta funkcja pobiera dwa parametry. Pierwszy parametr to łańcuch, a drugi to separator lub separator, na podstawie którego musimy podzielić ciąg. Dane wyjściowe zawierają jednokolumnową tabelę, w której znajdują się podciągi. Ta kolumna wyjściowa nosi nazwę 'Wartość' jak widać na poniższym rysunku. Ponadto „STRING SPLIT” Funkcja table_valued zwraca pustą tabelę, jeśli ciąg wejściowy ma wartość NULL.
Poziom zgodności bazy danych:
KażdyBaza danychjestpołączonyzdozgodnośćpoziom.Toumożliwiathebazy danychzachowaniedobyćzgodnyz THjestszczególnySQLserwerwersjatobiegniena.
Teraz wywołamy funkcję „string_split”, aby podzielić ciąg rozdzielany przecinkami. Ale poziom zgodności był mniejszy niż 130, dlatego podniesiono następujący błąd. „Nieprawidłowa nazwa obiektu„ SPLIT_STRING ””
Błąd występuje, gdy poziom zgodności bazy danych jest niższy niż 130 „Nieprawidłowa nazwa obiektu split_string”
Dlatego musimy ustawić poziom zgodności bazy danych na 130 lub wyższy. Dlatego będziemy postępować zgodnie z tymi krokami, aby ustawić poziom zgodności bazy danych.
- Przede wszystkim ustaw bazę danych na „single_user_access_mode” za pomocą następującego kodu.
ALTER DATABASE SET SINGLE_USER
- Po drugie, zmień poziom zgodności bazy danych przy użyciu następującego kodu.
ALTER DATABASE SET COMPATIBILITY_LEVEL = 130
- Umieść bazę danych z powrotem w trybie dostępu dla wielu użytkowników, używając następującego kodu.
ALTER DATABASE SET MULTI_USER
UŻYJ [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
Wynik będzie:
Zmień poziom zgodności na 130
Teraz uruchom ten kod, aby uzyskać wymagany wynik.
ZADEKLAROWAĆ @string_value VARCHAR (MAX); SET @ string_value = 'Monroy, Montanez, Marolahakis, Negley, Albright, Garofolo, Pereira, Johnson, Wagner, Conrad' SELECT * FROM STRING_SPLIT (@string_value,