① sql 怎么查出两个列里面数据不同的数据
oracle:
select *
from tab1
minus
select *
from tab2
sql server 2005:
select *
from tab1
except
select *
from tab2
sql server 2000:
select count(*) as “次数”
from (
(select callid from 日志表 where 查询条件1 group by callid
not exists
(select id from 日志表 where 查询条件2 ))t;
值得注意的是SqlServer中使用子查询的时候必须要给子查询起名字,就像上面的【t】,否则会报错。
② SQL查询A表的两列数据与B表的两列数据不相同的数据
select colease(a.1列名,b.1列名) ,nvl(a.2列名,0),nvl(b.2列名,0)
from a
full join b
on a.1列名 = b.1列名
上面是全集
要是不想要相同的 就minus 两表inner join的结果
③ sql中怎么在同一个表中列出两个列不重复的数据
sql 查询不重复的记录 可以使用 having count group by 组合
先把不重复数据的id查询出来 通过count()计算 只有数目为1的才是不重复的数据
然后通过in选择出不重复记录的数据
例子:
统计出a表中name不重复的所有记录
select b.* from table b where b.id in(select a.id from table a group by a.name having count(a.id) <2)
//其中 name重复的数据的列名
④ 如何使用sql语句查询两张字段数不同的两张表相同字段名并列出字段名
查询两张表中的数据可以采取连接和联合的方法来合并、组合来自不同表里的数据
,其中连接又可以有内连接、外连接和自然连接等多种形式,连接条件可以根据需要任易设置,亦可以对等连接也可以非对等连接,还可以组合使用逻辑运算符设置连接条件。具体的SQL语句必须捉供表结构和输出要求才能给出,语句形式的变化是多种多样的。
下面提供两例子供参考
1.学生表和成绩表查出每个学生的各科总分,要求列出学号,姓名和总分
select
a.学号,a.姓名,sum(b.分数)
as
总分
from
学生表
a,成绩表
b
where
a.学号=b.学号
group
by
b.学号;
2.将a,b两表的日产量记录合并输出
select
日期,产量
from
a
union
all
select
日期,产量
from
b;
⑤ sql 查询两张表两个字段不相同的数据
首先你两张表有什么关联么?
如果没有关联并且你只是想要相同字段的数据的话,下面的sql可以满足:
a).
--自动去掉a,b表中相同的数据
select same_col from a
union
select same_col from b
b).
--去a,b表的最大并集
select same_col from a
union all
select same_col from b
⑥ SQL 查找两表中不同的数据
使用except函数,select * from B where (select count(1) from A where A.ID = B.ID) = 0.
方法一(推荐)
WITH C AS ( SELECT Name
FROM ConsumerCouponApply A
WHERE NOT EXISTS ( SELECT 1
FROM ConsumerCouponApply B
WHERE B.Name = A.Name
GROUP BY B.Name )
GROUP BY A.Name
)
SELECT COUNT(1)
FROM C
方法二
WITH C AS ( SELECT A.Name
FROM ConsumerCouponApply A
GROUP BY A.Name
EXCEPT
SELECT B.Name
FROM ConsumerCouponApply B
GROUP BY B.Name
)
SELECT COUNT(1)
FROM C
方法三
SELECT COUNT(A.Name)
FROM ConsumerCouponApply A
LEFT JOIN ConsumerCouponApply B ON A.Name = B.Name
WHERE B.ID IS NULL
(6)sql两个列数不一样的表格扩展阅读:
高级查询运算词:
A: UNION 运算符:
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个
结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行
不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当
ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
⑦ sql 两个表中不同的列合成一个表
在两个表中需要各有一个关键列比如xuexiao_id来互相对应,以正确匹配。例句如下:
create table 表C (姓名 char(12) , 学校 char(36));
insert into table 表C ( (姓名 , 学校) select a.姓名,b.学校 from 表A a join 表B b on a.xuexiao_id=b.xuexiao_id;