我现在有2个表Table1,Table2。对应的字段、数据如下:Table1:primary key(a1)
a1(char) a2(int)
a 10
b 30Table2:primary key(b1)
b1(char) b3(int)
a 5
c 40
d 100----------------------------------------------------------------------------------我想要实现的是:根据Table1的a1字段,得到a2或者b2的数据。
也就是说,如果Table2里面b1字段和Table1里的a1字段相同的,那么就用b2的数据。例如:根据以上的数据,我要得到的是:
a 5
b 30----------------------------------------------------------------------------------
请问这个SQL语句应该怎么写?
a1(char) a2(int)
a 10
b 30Table2:primary key(b1)
b1(char) b3(int)
a 5
c 40
d 100----------------------------------------------------------------------------------我想要实现的是:根据Table1的a1字段,得到a2或者b2的数据。
也就是说,如果Table2里面b1字段和Table1里的a1字段相同的,那么就用b2的数据。例如:根据以上的数据,我要得到的是:
a 5
b 30----------------------------------------------------------------------------------
请问这个SQL语句应该怎么写?
Table2:primary key(b1)
b1(char) b2(int)
a 5
c 40
d 100
--> 测试数据:[Table1]
if object_id('[Table1]') is not null drop table [Table1]
create table [Table1]([a1] varchar(1),[a2] int)
insert [Table1]
select 'a',10 union all
select 'b',30
--> 测试数据:[Table2]
if object_id('[Table2]') is not null drop table [Table2]
create table [Table2]([b1] varchar(1),[b2] int)
insert [Table2]
select 'a',5 union all
select 'c',40 union all
select 'd',100select a1,b=isnull(b2,a2) from [Table1] A left join Table2 B on A.a1=b.b1/*
a1 b
---- -----------
a 5
b 30(所影响的行数为 2 行)
*/
drop table Table1,Table2