Sql server 2008 如何使用sql查询从逗号分隔的数字中查找匹配号?
我有一个SQL Server表,数据类型为varchar200,以逗号分隔,如下所示: 现在,我将参数(如逗号分隔的数字)传递给我的查询,以获得如下输出:Sql server 2008 如何使用sql查询从逗号分隔的数字中查找匹配号?,sql-server-2008,Sql Server 2008,我有一个SQL Server表,数据类型为varchar200,以逗号分隔,如下所示: 现在,我将参数(如逗号分隔的数字)传递给我的查询,以获得如下输出: Id MatchNumber 我尝试了以下SQL查询: DECLARE @Ids varchar(50); SET @Ids = '286,133,338,215,152,378,161,144,139,177'; select * from TblMMGameCard where Id IN (@Ids); 我想要一个如上表所
Id MatchNumber
我尝试了以下SQL查询:
DECLARE @Ids varchar(50);
SET @Ids = '286,133,338,215,152,378,161,144,139,177';
select * from TblMMGameCard where Id IN (@Ids);
我想要一个如上表所示的输出。怎么办?SQL Server不支持宏替换。一个选项是解析搜索字符串,然后通过连接测试命中率 范例
谢谢你,约翰Cappelletti@Abhilash.J.A总是乐于助人
DECLARE @Ids varchar(50);
SET @Ids = '286,133,338,215,152,378,161,144,139,177';
select * from TblMMGameCard where Id IN (@Ids);
DECLARE @Ids varchar(50) = '286,530,338,215';
Select A.ID
,MatchNumber = B.RetVal
From TblMMGameCard A
Join (
Select RetVal = ltrim(rtrim(B.i.value('(./text())[1]', 'varchar(50)')))
From (values (cast('<x>' + replace(@IDs,',','</x><x>')+'</x>' as xml)))A(x)
Cross Apply x.nodes('x') AS B(i)
) B on charindex(','+RetVal+',',','+[cardNumbers]+',')>0