注册 登录
编程论坛 SQL Server论坛

这个怎么办?

人妖123 发布于 2007-12-25 16:05, 826 次点击
我有一个A表(里面有一个flag字段)    我先查询这样的数据  

 Select * From JobMaster Where Flag !='1waiting' and Convert(Varchar(10), EnDate, 120) = '2007-12-25'
这是查询当天的数据。
select * from Jobmaster where flag !='5closed'  这是查询以前的flag!=5closed的数据

怎么把他们查询的结果合并啊 我想得到上面2条语句的记录集。
5 回复
#2
purana2007-12-25 16:57
union
or
union all
#3
人妖1232007-12-25 17:32
union 是把他们连起来吧  我的意思就是
   第一个查询的结果  姓名  年龄
                      a         1
                   b         2
   第二个查询的结果   姓名  年龄
                      c          3
       我想要的结果:
                     姓名  年龄
                      a     1
                   b     2
                   c     3

[[italic] 本帖最后由 人妖123 于 2007-12-25 18:34 编辑 [/italic]]
#4
purana2007-12-25 19:54
full join
#5
purana2007-12-25 19:57
使用union all完全满足你的要求.

create table tb1
(
   col1 varchar(10),
   col2 int
)
insert tb1 values('a',1)
insert tb1 values('b',2)

create table tb2
(
   col1 varchar(10),
   col2 int
)
insert tb1 values('c',3)

select * from tb1
union all
select * from tb2

drop table tb1,tb2

/*
col1       col2        
---------- -----------
a          1
b          2
c          3

(所影响的行数为 3 行)
*/
#6
purana2007-12-25 19:59
select isnull(a.col1,b.col1) col1,isnull(a.col2,b.col2) col2
from tb1 a
full join tb2 b
on a.col1=b.col1 and a.col2=b.col2
1