SQL Server 2008比较同一数据库中的两个表,并更改get列
发布于 2021-05-10 21:23:38
我需要得到两个表之间的区别。我需要比较两个表中的“产品”,“数量”和“价格”列,并说出它的新记录还是我需要提及更改了哪个列值。
示例表A
Product | Qty | Price | Comments
A 20 500 xyz
B 50 200 xyz
C 90 100 abc
示例表B
Product | Qty | Price | Comments
A 20 500 sd
B 70 200 cv
C 90 200 wsd
D 50 500 xyz
目前,我正在使用Expect,它提供了所有新的/不匹配的行。
select Product,Qty,Price
from TableB
except
select Product,Qty,Price
from TableA
Product | Qty | Price
B 70 200
C 90 200
D 50 500
但我需要像下面这样的结果集
Product | Result
B Updated Qty
C Updated Price
D New
关注者
0
被浏览
89
1 个回答
-
您可以使用
LEFT JOIN
:SELECT b.Product, b.Qty, b.Price, Result = CASE WHEN a.product IS NULL THEN 'New' ELSE 'Updated: ' + STUFF( CASE WHEN a.Qty != b.Qty THEN ',Qty' ELSE '' END + CASE WHEN a.Price != b.Price THEN ',Price' ELSE '' END, 1, 1, '') END FROM TableB b LEFT JOIN TableA a ON a.Product = b.Product WHERE a.Product IS NULL OR a.Qty != b.Qty OR a.Price != b.Price;
推荐阅读
-
SQL Server:比较两个表中的列
2021-05-20 关注 0 浏览79 1答案
-
比较两个 SQL Server 数据库(模式和数据)的最佳工具是什么?
2022-07-28 关注 0 浏览12 1答案
-
检查SQL Server数据库表中是否存在表或列
2021-04-20 关注 0 浏览97 1答案
-
需要更改生产数据库中的列类型(SQL Server 2005)
2021-05-20 关注 0 浏览85 1答案
-
将带有数据的表复制到SQL Server 2008中的另一个数据库
2021-04-20 关注 0 浏览76 1答案
-
如何比较同一数据框的两列?
2021-01-29 关注 0 浏览108 1答案
-
如何在 SQL Server 2008 Express 的同一台服务器上克隆 SQL Server 数据库?
2022-04-11 关注 0 浏览52 1答案
-
跟踪Microsoft SQL Server数据库中的更改
2021-06-04 关注 0 浏览68 1答案
-
比较查询以比较两个SQL Server表
2021-04-20 关注 0 浏览115 1答案
-
如果有两个事务,同时对数据库中同一数据进行操作,不可能引起冲突的操作是
2022-05-11 关注 0 浏览22 1答案