表1 表2
F1 F2 F3 F4 F2 F5
1 A AA B A BB
2 C CC D C DD
3 E EE
4 F FF
结果
表3
F1 F2 F3 F4 F5
1 A AA B BB
2 C CC D DD
3 E EE X X
4 F FF X X
表1与表2通过字段F2关联,如在表2的F2字段中未找到表1字段F2中值,则将表3的F4,F5的值为X ,否则表3中F4,F5的值为表2的F4、F5值
SQL语句怎么写???
F1 F2 F3 F4 F2 F5
1 A AA B A BB
2 C CC D C DD
3 E EE
4 F FF
结果
表3
F1 F2 F3 F4 F5
1 A AA B BB
2 C CC D DD
3 E EE X X
4 F FF X X
表1与表2通过字段F2关联,如在表2的F2字段中未找到表1字段F2中值,则将表3的F4,F5的值为X ,否则表3中F4,F5的值为表2的F4、F5值
SQL语句怎么写???
解决方案 »
- WebBrowser 的显示问题
- bpl怎么做,如何调用bpl
- 如何将SocketConnection的AppServer转成接口??
- 如何防止listview插入相同的caption?
- 请问怎么做闹钟程序啊,有什么好的建议吗??
- 解决就给分!小弟急,急着要交差,交不了就死定了!大家来看看!关于FastReport的几个问题,估计兄弟们均有可能遇到?email:[email protected]
- 高分求:使用TCPClient 和TCPServer( Indy 9 ,Delphi 6) 进行跨网段连接的问题
- 三层结构的数据库连接问题
- 帮帮忙!有分拿!!
- 打印
- 新手请教关于SQL语句的执行问题!!!
- 窗口调用的问题,求解
union
select a.F1,a.F2,a.F3,X as F4,X as F5 from 表1 a,表2 b where a.F2<>b.F2不知行不行
select A.F1 as F1,
A.F2 as F2,
A.F3 as F3,
IsNull(B.F4, 'X') as F4,
IsNull(B.F5, 'X') as F5
from 表1 A left jion 表2 B on A.F2 = B.F2
select F1,F2,F3,F4,F5
from A,B
where A.F2=B.F2
union
select F1,F2,F3,X as F4,X as F5
from A,B where A.F2<>B.F2
select A.F1 as F1,
A.F2 as F2,
A.F3 as F3,
IsNull(B.F4, 'X') as F4,
IsNull(B.F5, 'X') as F5
from 表1 A left jion 表2 B on A.F2 = B.F2
select A.F1,A.F2,A.F3,F4,F5
from A,B
where A.F2=B.F2 and A.F2 in (select * from A where A.F2=B.F2)
union
select A.F1,A.F2,A.F3,'X'as F4,'X'as F5
from A
where A.F2 not in (select * from A where A.F2<>B.F2)
from A,B
where A.F2=B.F2 and A.F2 in (select * from A where A.F2=B.F2)
union
select A.F1,A.F2,A.F3,'X'as F4,'X'as F5
from A
where A.F2 in (select * from A where A.F2<>B.F2)//刚才多了个not
--插入数据
insert into 表1select '1','A','AA' union
select '2','C','CC' union
select '3','E','EE' union
select '4','F','FF'
--select * from 表1
--建立测试环境
Create Table 表2(f4 varchar(10),f2 varchar(10),f5 varchar(10))
--插入数据
insert into 表2
select 'B','A','BB' union
select 'D','C','DD' --select * from 表2
select 表1.f1,表1.f2,表1.f3,ISNULL(表2.f4,'X'),ISNULL(表2.f5,'X') from 表1
left join 表2
on 表2.f2=表1.f2
--删除测试环境
Drop Table 表2
--删除测试环境
Drop Table 表1
f1 f2 f3
---------- ---------- ---------- ---------- ----------
1 A AA B BB
2 C CC D DD
3 E EE X X
4 F FF X X
ISNULL(表2.f4,'X') f4,
ISNULL(表2.f5,'X') f5,
不要用 union
效率不高,而且要用的话也应该用union all ,不然查询结果有重复记录的话会被过滤掉