问题描述
我有以下 sql 服务器查询,它构建了一个这样的字符串:'Group1'、'Group2'、'Group3'
SELECT '''' + '
STRING_AGG(CAST(groupname as NVARCHAR(MAX)),''',''') + ''''
FROM groups
WHERE category = 'food'
我在 lookup expression
中有一个 ADF pipeline
,我想在其中使用 @concat function
构建查询动态。此查询由 sql 服务器数据库中的查找表达式执行。 sql 语句中的 WHERE 子句需要使用管道参数进行参数化。我尝试了下面的代码,但这不起作用并给我一个错误:missing comma between the arguments
我该如何解决这个问题?
@concat('
SELECT ''' +
STRING_AGG(CAST(groupname as NVARCHAR(MAX)),''') + '''
FROM groups
WHERE category = ''',pipeline().parameters.Category,''''
)
解决方法
我创建了一个简单的测试如下:
create table dbo.groups(
groupname varchar(25),category varchar(25)
)
insert into dbo.groups values
('Group1','food'),('Group2',('Group3','food')
SELECT '''' + STRING_AGG(CAST(groupname as NVARCHAR(MAX)),''',''') + '''' as groups
FROM groups WHERE category = 'food'