我必须根据对另一个表的限制在表中的一个列中插入值。这些是条件。我有两张桌子A和B. A有一个列a,列a中的值取决于表B中的值。假设B中有b,c,d列。现在条件是这些,如果d ='Y'的值,a中的值是1 ,如果b& c中的值相同,则a的值为2,否则值为3。所以我写了这段代码。 A和B具有相同的主键值,因此行数相同
select b ,c,d from B case when d='Y' then insert into A(a) values(1);
else case when b=c then insert into A(a) values(2); else insert into
A(a) values(3); end case end case ;
现在似乎存在语法错误,但我觉得我的基础知识在这个主题中很弱。我认为这可以使用游标或循环轻松完成,但数据集很大,所以我认为这不可行
答案 0 :(得分:4)
尝试这种方式:
insert into A(a)
select case
when d = 'Y' then 1
when b = c then 2
else 3
end
from B