我正在编写用于创建数据透视表的sql查询。我有示例代码,在这里我得到的结果没有错误,但是结果应该是每个值都用方括号括起来的值,而不是整个结果。我该如何设置?
我尝试使用引号功能,但是它在整个输出中放置了方括号。
DECLARE @CityNames NVARCHAR(MAX) = '', @t varchar(max) = 'jay, sam'
SELECT @CityNames += QUOTENAME(@t)+ ','
select @CityNames
我希望输出为[jay],[sam],但实际输出为[jay,sam]。
答案 0 :(得分:1)
这是您想要的吗?
select '[' + @t + replace(@t, ', ', '], [') + ']')
QUOTENAME()
将字符串视为单个标识符,并适当引用以上内容应适用于最合理的列名。
答案 1 :(得分:0)
我已经使用QUOTENAME()函数找到了答案,我们可以按照下面的代码或@gordon Linoff的上面的代码进行操作。
DECLARE @CityNames NVARCHAR(MAX) = '', @t nvarchar(max) = 'jay, sam', @result
varchar(max), @sSQL nvarchar(max)
SELECT @CityNames += + QUOTENAME(value)+',' from (select value from
dbo.fx_split( @t, ','))x
IF (RIGHT(@CityNames, 1) = ',')
set @CityNames = LEFT(@CityNames, LEN(@CityNames) - 1)
select @citynames