本文介绍了如何在SQL中传递逗号分隔值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我想将逗号分隔值传递给sql server中的参数变量。 目前价值为 @ test ='ab','bc','cd' 。但是当在条件的IN子句中传递这个参数变量时它不起作用。 我尝试了什么: 声明 @ChannelTypeXml xml, @TransactionTypeXml xml SET @ ChannelTypeXml =' < ROOT><通道类型><渠道> FGBO< /渠道>< /通道类型> < CHANNELTYPE>< CHANNEL> IB< / CHANNEL>< / CHANNELTYPE> < CHANNELTYPE>< CHANNEL>手动上传 - FGB< / CHANNEL>< / CHANNELTYPE>< / ROOT>' - 选择@TransactionTypeXml = FileType - 来自USERS - 其中 --UserId ='bm' - 和 --Role ='BM' - AND IsDeleted = 0 select @ChannelTypeXml 声明@ChannelTypeValues varchar(4000) select @ChannelTypeValues ='' SELECT @ChannelTypeValues = @ChannelTypeValues +''''+ tcvalue('CHANNEL [1]','varchar(100)')+''''+',' FROM @ ChannelTypeXml.nodes( '// ROOT / CHANNELTYPE')T(c) 选择@ChannelTypeValues = substring(@ ChannelTypeValues,1,len(@ChannelTypeValues)-1) 选择@ChannelTypeValues 解决方案 I want to pass comma separated values to a parameter variable in sql server. Currently getting values as @test='ab','bc','cd'. But when passing this parameter variable in IN clause of where condition it is not working.What I have tried: declare @ChannelTypeXml xml, @TransactionTypeXml xml SET @ChannelTypeXml='<ROOT><CHANNELTYPE><CHANNEL>FGBO</CHANNEL></CHANNELTYPE> <CHANNELTYPE><CHANNEL>IB</CHANNEL></CHANNELTYPE> <CHANNELTYPE><CHANNEL>Manual Upload - FGB</CHANNEL></CHANNELTYPE></ROOT>' --select @TransactionTypeXml = FileType --from USERS --where --UserId= 'bm' --and --Role='BM' --AND IsDeleted=0 select @ChannelTypeXml declare @ChannelTypeValues varchar(4000)select @ChannelTypeValues = '' SELECT @ChannelTypeValues = @ChannelTypeValues + ''''+ t.c.value('CHANNEL[1]','varchar(100)') +'''' + ','FROM @ChannelTypeXml.nodes('//ROOT/CHANNELTYPE') T(c) select @ChannelTypeValues = substring(@ChannelTypeValues,1,len(@ChannelTypeValues)-1) select @ChannelTypeValues 解决方案 这篇关于如何在SQL中传递逗号分隔值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 09-23 03:43