比如下面这段代码,TABLE表里面有 XXX(INT),test nvarchar 这样的2个字段
定义参数@A 从table查处XXX的值
要求把 XXX 是 5 的行里面的test 的值更新成'YES'
否则 更新成'no'问题是:我这段代码有毛病,UPDATE 的时候 @A只传一个值进来执行更新...
其实原始table表里面查出来的@A是多个值请教各位大侠,该如修改,让我达到按照判断更新需要的结果,也就是把@A的多个查出来的值都执行
DECLARE @A INT
SELECT @A=XXX FROM mid_inv_dict
if(@A=5)
BEGIN
UPDATE table SET test='YES' WHERE XXX = @A
END
ELSE
BEGIN
UPDATE table SET test='NO' WHERE XXX = @A
END
定义参数@A 从table查处XXX的值
要求把 XXX 是 5 的行里面的test 的值更新成'YES'
否则 更新成'no'问题是:我这段代码有毛病,UPDATE 的时候 @A只传一个值进来执行更新...
其实原始table表里面查出来的@A是多个值请教各位大侠,该如修改,让我达到按照判断更新需要的结果,也就是把@A的多个查出来的值都执行
DECLARE @A INT
SELECT @A=XXX FROM mid_inv_dict
if(@A=5)
BEGIN
UPDATE table SET test='YES' WHERE XXX = @A
END
ELSE
BEGIN
UPDATE table SET test='NO' WHERE XXX = @A
END
UPDATE t SET t.test=case when m.XXX= 5 then 'YES' else 'NO' end
from table t, mid_inv_dict m
WHERE t.XXX =m.XXX
对不起啊,我刚才一时着急打错了,其实是同一个表,只有table这一张表DECLARE @A INT
SELECT @A=XXX FROM table
if(@A=5)
BEGIN
UPDATE table SET test='YES' WHERE XXX = @A
END
ELSE
BEGIN
UPDATE table SET test='NO' WHERE XXX = @A
END
其实我知道可以用2个UPDATE 配合WHERE条件更新
我是想请教
如果用定义变量的方式,如何把变量的值进行完整的判断,而不是一次只判断一个值就停止了
sql 2012 据说引进了数组变量,那就能解决你的疑惑了
对不起啊,我刚才一时着急打错了,其实是同一个表,只有table这一张表DECLARE @A INT
SELECT @A=XXX FROM table
if(@A=5)
BEGIN
UPDATE table SET test='YES' WHERE XXX = @A
END
ELSE
BEGIN
UPDATE table SET test='NO' WHERE XXX = @A
END其实我知道可以用2个UPDATE 配合WHERE条件更新
我是想请教
如果用定义变量的方式,如何把变量的值进行完整的判断,而不是一次只判断一个值就停止了