資料庫表對比
1. Sql資料庫表單數據對比
select a.* from
(select * from tab1 a where backDate=Convert(date,GETDATE())) a
inner join (select * from tab1 where where backDate=DateAdd(day,-1,Convert(date,GETDATE()))) b
on a.Id=b.id and (a.price <>b.price or a.count<>b.count)
試下吧,on後而我預設的幾個匹配欄位,具體根據你的列來確定
2. 兩個資料庫中相同表的對比sql語句怎麼寫
select
base.name, base.year
, a.成績 as [a表成績]
, b.成績 as [b表成績]
, case
when a.成績 is null then 'a表中不存在'
when b.成績 is null then 'b表中不存在'
when a.成績=b.成績 then '成功'
else '差異' end as 比較結果
from (
select name, year from tb_a
union
select name, year from tb_b
) as base
left join tb_a as a on a.name=base.name and a.year=base.year
left join tb_b as b on b.name=base.name and b.year=base.year
3. 怎樣把兩個不同資料庫里的表對比
是查找temp1和temp2表明不相同的么?如果僅僅是查找表明不同的那好辦,一條語句就可以搞定。
Select TABLE_NAME FROM temp1.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' where TABLE_NAME not in(
Select TABLE_NAME FROM temp2.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE')
如果還要查找數據表結構的不同,可以試下這個語句
Select temp1.dbo.sysobjects.name as Table_name, temp1.dbo.syscolumns.name AS Column_name
FROM temp1.dbo.syscolumns INNER JOIN
temp1.dbo.sysobjects ON temp1.dbo.syscolumns.id = temp1.dbo.sysobjects.id
Where (temp1.dbo.sysobjects.xtype = 'u') AND (NOT (temp1.dbo.sysobjects.name LIKE 'dtproperties'))
--可以查詢資料庫中所有的表和欄位的數據,然後兩個表的比較就行了。我就不寫了
4. SQL如何對2個表的數據進行對比
a表與b表通過哪個欄位可以關聯起來,關系是1對多還是多對多
select * from tablesA a
left join tablesB b on a.xx=b.xx
where a.xx1=b.xx1
類似這種
5. 怎樣比較兩個資料庫的表結構
建模工具 比如powerDesigner,逆向工程,創建資料庫的物理模型,一目瞭然
6. sql資料庫中的兩個表的記錄進行比較
問題補充:
select N'ab',N'ab',N'bc',N'bc',N'abc',N'ab',N'ab',N'ac',N'abc',N'ab'
select N'ab',N'ab',N'bc',N'bc',N'abc',N'ab',N'ab',N'ac',N'abc',N'ab'
微軟專家吳熹
能否解釋一下上面的語句是什麼意思,因為我要比較幾萬條記錄,不會要這樣每條都寫入程序吧!
A表中有幾萬條記錄,B表中有800條記錄,A表中的每條記錄和B表中的每條記錄進行比較,A表的每條記錄和B表800條記錄比較後把比較結果寫到A表記錄新增的800條欄位里進行存儲。
---------------------------------
以上腳本是生成測試數據,加上N''--用生成nvarchar符號,有特殊字元時可加上。
兩個表要通過主健關連 加上條件 where a.ID=b.ID,不加條件時,需要保證A表只有一條數據.
沒主健時多對多關系會產生笛卡爾結果集
--> --> (Roy)生成測試數據
declare @A table([1] nvarchar(1),[2] nvarchar(1),[3] nvarchar(1),[4] nvarchar(1),[5] nvarchar(1),[6] nvarchar(1),[7] nvarchar(1),[8] nvarchar(1),[9] nvarchar(1),[10] nvarchar(1))
Insert @A
select N'a',N'c',N'a',N'b',N'a',N'b',N'c',N'c',N'a',N'b'
--> --> (Roy)生成測試數據
declare @B table([1] nvarchar(2),[2] nvarchar(2),[3] nvarchar(2),[4] nvarchar(2),[5] nvarchar(3),[6] nvarchar(2),[7] nvarchar(2),[8] nvarchar(2),[9] nvarchar(3),[10] nvarchar(2))
Insert @B
select N'ab',N'ab',N'bc',N'bc',N'abc',N'ab',N'ab',N'ac',N'abc',N'ab'
Select a.*,
case when b.[1] like '%'+a.[1]+'%' then 1 else 0 end+
case when b.[2] like '%'+a.[2]+'%' then 1 else 0 end+
case when b.[3] like '%'+a.[3]+'%' then 1 else 0 end+
case when b.[4] like '%'+a.[4]+'%' then 1 else 0 end+
case when b.[5] like '%'+a.[5]+'%' then 1 else 0 end+
case when b.[6] like '%'+a.[6]+'%' then 1 else 0 end+
case when b.[7] like '%'+a.[7]+'%' then 1 else 0 end+
case when b.[8] like '%'+a.[8]+'%' then 1 else 0 end+
case when b.[9] like '%'+a.[9]+'%' then 1 else 0 end+
case when b.[10] like '%'+a.[10]+'%' then 1 else 0 end as 新列
from @A a,@B b
(1 行受影響)
1 2 3 4 5 6 7 8 9 10 新列
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -----------
a c a b a b c c a b 7
(1 行受影響)
7. 如何對兩個資料庫中的表進行比較
sql
server
和mysql可以這樣:
use
庫1;
go
insert
A表(要插入的欄位列表)
select
要插入的欄位列表
from
庫2.B表
;
--注意欄位的回對應....
oracle
可以使用
exp導出
然後答imp導入
8. 如何比較兩張資料庫表的內容
兩個表的數據復循環顯示制.
如果表一的和表二的相同,就加一個顏色值,在html中讓顯示的字元加上顏色就可以區分了.
如果要分部分顯示,可以用數組暫存或資料庫暫存數據,將相同的或不同的暫存下來,顯示完一樣後再顯示另一樣.
9. 兩個資料庫表怎麼對比
你把數據導出到excel,帶表頭,然後用公式或者vba就可以比對了