解码 sql 函数
Decoding a sql function
我正在处理一些有人写过但现在已经离开组织的查询。
首先,这是一个 table 值函数 - 有人可以帮助我理解它试图做什么。
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
谢谢
一个 table 值函数,它根据分隔符将文本分成子字符串行。 Returns 单列 table,子字符串作为行。
值是列的名称。如果任何输入参数是 nvarchar 或 nchar,则此函数 returns nvarchar。否则,varchar 是 returned。 return 类型的长度与字符串参数的长度相同。例如:
因此,如 Paul 所述:查找所有函数调用以查看正在传递的内容。
STRING_SPLIT 输入一个包含分隔子字符串的字符串,并输入一个字符用作分隔符或分隔符。 STRING_SPLIT 输出单列 table,其行包含子字符串。输出列的名称是 value.
我正在处理一些有人写过但现在已经离开组织的查询。
首先,这是一个 table 值函数 - 有人可以帮助我理解它试图做什么。
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
谢谢
一个 table 值函数,它根据分隔符将文本分成子字符串行。 Returns 单列 table,子字符串作为行。
值是列的名称。如果任何输入参数是 nvarchar 或 nchar,则此函数 returns nvarchar。否则,varchar 是 returned。 return 类型的长度与字符串参数的长度相同。例如:
因此,如 Paul 所述:查找所有函数调用以查看正在传递的内容。
STRING_SPLIT 输入一个包含分隔子字符串的字符串,并输入一个字符用作分隔符或分隔符。 STRING_SPLIT 输出单列 table,其行包含子字符串。输出列的名称是 value.