lok*_*oki 0 sql t-sql sql-server sql-server-2008
我想更新test1表格的一些行.ColumnCtest1中为零.
例如:
ColumnA是父节点.ColumnA + ColumnB是主键.
create table test(ColumnA int, ColumnB int, ColumnC int);
Insert Into test Values(1, 10,0);
Insert Into test Values(2, 11,0);
Insert Into test Values(3, 14,0);
create table test1(ColumnA int, ColumnB int, ColumnC int);
Insert Into test1 Values(1, 9,123);
Insert Into test1 Values(1, 10,0);
Insert Into test1 Values(2, 10,128);
Insert Into test1 Values(2, 11,0);
Insert Into test1 Values(3, 13,145);
Insert Into test1 Values(3, 14,0);
Run Code Online (Sandbox Code Playgroud)
我想要的结果:

我不工作的代码:
update test1 a
set a.ColumnC = b.ColumnC
from test1 as b where convert(nvarchar,b.ColumnA)+
convert (nvarchar,b.ColumnB)in(select
convert(nvarchar,c.ColumnA)+
convert (nvarchar,c.ColumnB) ColumnC
from test as c);
select * from test1
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
试试这个 :
update a set a.ColumnC=b.ColumnC
from test1 a
inner join test1 b
on b.ColumnA=a.ColumnA and b.ColumnC!=0
and a.ColumnC=0;
select * from test1;
Run Code Online (Sandbox Code Playgroud)