① 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;