读书人

求这个MSSQL如何写啊

发布时间: 2013-07-01 12:33:04 作者: rapoo

求这个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中去掉这两个就是你要的结果了。

读书人网 >SQL Server

热点推荐