我正在處理一些有人寫過但現在已經離開組織的問題。
首先,這是一個表值函式 - 有人可以幫助我理解它試圖做什么。
ALTER FUNCTION [dbo].[udfSplitString]
(
@Input NVARCHAR(MAX),
@Character CHAR(1)
)
RETURNS @Output TABLE (
Item NVARCHAR(1000)
)
AS
BEGIN
DECLARE @StartIndex INT, @EndIndex INT
SET @StartIndex = 1
IF SUBSTRING(@Input, LEN(@Input) - 1, LEN(@Input)) <> @Character
BEGIN
SET @Input = @Input @Character
END
WHILE CHARINDEX(@Character, @Input) > 0
BEGIN
SET @EndIndex = CHARINDEX(@Character, @Input)
INSERT INTO @Output(Item)
SELECT SUBSTRING(@Input, @StartIndex, @EndIndex - 1)
SET @Input = SUBSTRING(@Input, @EndIndex 1, LEN(@Input))
END
RETURN
END
謝謝
uj5u.com熱心網友回復:
一個表值函式,它根據分隔符將文本分成子字串行。回傳以子字串為行的單串列。
值是列的名稱。如果任何輸入引數是 nvarchar 或 nchar,則此函式回傳 nvarchar。否則,回傳 varchar。回傳型別的長度與字串引數的長度相同。例如:

因此,正如Paul 所提到的:查找所有函式呼叫以查看正在傳遞的內容。
STRING_SPLIT 輸入具有分隔子字串的字串,并輸入一個字符以用作分隔符或分隔符。STRING_SPLIT 輸出一個單串列,其行包含子字串。輸出列的名稱是值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/343711.html
標籤:sql 查询语句 azure-sql-数据库
下一篇:將多個連續行連接成單行
