定義:
STRING_SPLIT()函數根據指定的分隔符將字符串拆分為子字符串行。
※STRING_SPLIT 要求兼容性級別至少為 130。 (即SSMS 2016及以上版本)
※級別低於 130 時,SQL Server 找不到 STRING_SPLIT 函數。
※若要更改數據庫的兼容性級別,請參閱查看或更改數據庫的兼容性級別。
語法:
STRING_SPLIT ( string , separator )
參數:
string:任何字符類型(例如 nvarchar、varchar、nchar 或 char)的表達式。
separator:任何字符類型(例如 nvarchar(1)、varchar(1)、nchar(1) 或 char(1))的單字符表達式,用作串聯子字符串的分隔符。
返回值:
返回子字符串的單列的表(table)。 該列名為“value”。 如果任何輸入參數為 nvarchar 或 nchar,則返回 nvarchar。 否則,返回 varchar。 返回類型的長度與字符串參數的長度相同。
輸出行可以按任意順序排列。 順序不保證與輸入字符串中的子字符串順序匹配。 可以通過在 SELECT 語句中使用 ORDER BY 子句覆蓋最終排序順序 (ORDER BY value)。
當輸入字符串包含兩個或多個連續出現的分隔符字符時,將出現長度為零的空子字符串。 空子字符串的處理方式與普通子字符串相同。 可以通過使用 WHERE 子句篩選出包含空的子字符串的任何行 (WHERE value <> '')。 如果輸入字符串為 NULL,則 STRING_SPLIT 表值函數返回一個空表。
例:
SELECT value FROM string_split('hello world',' ')
結果:
| value |
| hello |
| world |
參考原文地址:https://docs.microsoft.com/zh-cn/sql/t-sql/functions/string-split-transact-sql?view=sql-server-2017
聲明:本文是本人查閱網上及書籍等各種資料,再加上自己的實際測試總結而來,僅供學習交流用,請勿使用於商業用途,任何由此產生的法律版權問題概不負責,謝謝。
