求这个MSSQL怎么写啊。
数据库有记录
id goodid
1 11
2 23
3 35
现在有一个goodid数据
string goodidArr="17,23";
如果数据库不存在该ID则返回该ID,存在的不返回
结果要求返回17,这个SQL怎么写啊。
[解决办法]
declare @r varchar(1000)
select @r = '17,23,123,35,232'
select @r = ',' + @r + ','
select @r = replace(@r, ',' + goodid + ',', ',') from tb
print @r
[解决办法]
--> 测试数据:@T
declare @T table([id] int,[goodid] int)
insert @T
select 1,11 union all
select 2,23 union all
select 3,35 UNION ALL
SELECT 4,46 UNION ALL
SELECT 5,58
DECLARE @p VARCHAR(30)
SET @p = '17,23,47,58'
SELECT [goodid]
FROM @T
WHERE CHARINDEX(',' + LTRIM([goodid]) + ',', ',' + @p + ',') > 0
/*
goodid
-----------
23
58
*/
--可以得到23,58,从@p中去掉这两个就是你要的结果了。