sql 根据ID循环删除行

来源:百度知道 编辑:UC知道 时间:2024/05/30 09:59:48
declare @userid varchar(100);
set @userid=‘1,2,3,4’;
我现在想把@userid变量分解成4个数字;然后循环将分解到的数字代入下面
declare @id int;
set @id=;--这里分别等于4个数
然后delete table where id=@id

在线等,请高手指教谢谢!
zzyyxxaabbcc:你好,你说得这个我会,我是想知道我这种方法在SQL中应该怎么编写

--可以将字符串分解成行插入到一个表变量
--然后根据ID 删除要删除的数据
--
--
--这是以前CSDN大版主邹建 写的一个方法,很好很强大
/*
分解公式
将公式按运算分解到表中
*/
declare @str varchar(100)
declare @i int,@str1 varchar(10),@str2 varchar(10)
set @str='1,2,3,4' --要分解的字符串
declare @tb table(num varchar(20),operation varchar(2)) --定义保存结果的表
--公式分拆
set @i=patindex('%[^0-9]%',@str)
while @i>0
begin
select @str1=left(@str,@i-1)
,@str=substring(@str,@i,8000)
,@i=patindex('%[0-9]%',@str)
,@str2=left(@str,@i-1)
,@str=substring(@str,@i,8000)
,@i=patindex('%[^0-9]%',@str)
insert into @tb values(@str1,@str2)
end
if @str<>'' insert into @tb values(@str,'')

--显示分拆结果
select * from @tb

--删除就这样 @tb一定要取个别名
DELETE TabelName
FROM @tb AS TA
WHERE TabelName.ID = TA.ID

以上是SQLSERVER 写法 希望对你有帮助

delete * from table where id in