Azure SQL 数据仓库中的拆分器功能
Splitter Function in Azure SQL Data Warehouse
我正在尝试通过引用代码 here 来构建一个接受多值参数的函数。但是,我在创建它时遇到错误。这里有什么问题?
CREATE FUNCTION [dbo].[func_CommaDelimitedString] (@val nvarchar(100))
RETURNS @clublist TABLE (clubname nvarchar(55))
BEGIN
DECLARE @x int = 1
DECLARE @y int = CHARINDEX(',', @val)
WHILE @x < LEN(@val) + 1
BEGIN
IF @y = 0
BEGIN
SET @y = LEN(@val) + 1
END
INSERT INTO @clublist (clubname) VALUES (SUBSTRING(@val, @x, @y - @x))
SET @x = @y + 1
SET @y = CHARINDEX(',', @val, @x)
END
RETURN
END
Msg 103010, Level 16, State 1, Line 1
Parse error at line: 13, column: 15: Incorrect syntax near '@clublist'.
我的环境:Microsoft Azure SQL 数据仓库 - 10.0.10887.0 2020 年 1 月 23 日 07:36:54 版权所有 (c) Microsoft Corporation
Azure Synapse Analytics SQL 池(又名 Azure SQL DW)不支持用户定义的 table 值函数,仅支持用户定义的标量值函数。请参阅 CREATE FUNCTION (SQL Data Warehouse)。
但它确实支持 string_split,因此您不需要此特定功能。
我正在尝试通过引用代码 here 来构建一个接受多值参数的函数。但是,我在创建它时遇到错误。这里有什么问题?
CREATE FUNCTION [dbo].[func_CommaDelimitedString] (@val nvarchar(100))
RETURNS @clublist TABLE (clubname nvarchar(55))
BEGIN
DECLARE @x int = 1
DECLARE @y int = CHARINDEX(',', @val)
WHILE @x < LEN(@val) + 1
BEGIN
IF @y = 0
BEGIN
SET @y = LEN(@val) + 1
END
INSERT INTO @clublist (clubname) VALUES (SUBSTRING(@val, @x, @y - @x))
SET @x = @y + 1
SET @y = CHARINDEX(',', @val, @x)
END
RETURN
END
Msg 103010, Level 16, State 1, Line 1 Parse error at line: 13, column: 15: Incorrect syntax near '@clublist'.
我的环境:Microsoft Azure SQL 数据仓库 - 10.0.10887.0 2020 年 1 月 23 日 07:36:54 版权所有 (c) Microsoft Corporation
Azure Synapse Analytics SQL 池(又名 Azure SQL DW)不支持用户定义的 table 值函数,仅支持用户定义的标量值函数。请参阅 CREATE FUNCTION (SQL Data Warehouse)。
但它确实支持 string_split,因此您不需要此特定功能。