SQL Server 2008比较同一数据库中的两个表,并更改get列

加利亚纳苏达拉姆v

我需要得到两个表之间的区别。我需要比较两个表中的“产品”,“数量”和“价格”列,并说出它的新记录还是我需要提及更改哪个列值。

示例表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
加雷斯

您可以使用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小提琴上的示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

连接到SQL Server;连接到同一数据库的两个网站

来自分类Dev

SQL Server与来自同一Azure SQL SERVER的不同Azure SQL数据库中的两个表合并

来自分类Dev

在SQL Server 2008的同一数据库中复制表,然后更新内容

来自分类Dev

同步两个SQL Server 2008数据库

来自分类Dev

同步两个SQL Server 2008数据库

来自分类Dev

两个用户可以连接到数据库并在SQL Server中同时更新表的同一行吗?

来自分类Dev

比较SQL Server中两个不同数据库中两个存储过程之间的代码

来自分类Dev

比较SQL Server 2008中的数据库

来自分类Dev

在 SQL Server 中逐行比较两个不同表中的两个文本列

来自分类Dev

同步两个数据库表SQL Server

来自分类Dev

如何在单个存储过程中合并两个不同的 SQL Server 2012 数据库表?

来自分类Dev

比较SQL Server中同一表的列

来自分类Dev

比较SQL Server中同一表的列

来自分类Dev

在同一表中查询MS SQL Server中的数据库列表

来自分类Dev

从SQL Server中单个表的数据比较两个不同时期

来自分类Dev

从SQL Server中的两个表中检索数据

来自分类Dev

SQL Server:合并两个表中的数据

来自分类Dev

在SQL Server中使用同一表在一个表中合并两个不同的行

来自分类Dev

如何更改SQL Server(2008)数据库的日期格式?

来自分类Dev

SQL Server 2008,通过从不共享相同列信息的两个不同表中选择两个列来获取一个新表

来自分类Dev

如何在SQL Server 2012数据库的一个表中分配许多列

来自分类Dev

如何将SQL Server 2008表从一个数据库导入到另一个数据库中的多个表中?

来自分类Dev

一个表在SQL Server中可以有两个标识列吗?

来自分类Dev

使用两个WHERE条件从同一张表中两次选择一列SQL SERVER

来自分类Dev

连接并比较两列与 SQL Server 2008 中其他表中的列?

来自分类Dev

数据库备份中的元数据-SQL Server 2008

来自分类Dev

如何将SQL Server 2008表从一个数据库导入到另一个数据库的多个表中?

来自分类Dev

从 SQL Server 中的另一个数据库表插入选择

来自分类Dev

SQL Server 2005数据库比较

Related 相关文章

  1. 1

    连接到SQL Server;连接到同一数据库的两个网站

  2. 2

    SQL Server与来自同一Azure SQL SERVER的不同Azure SQL数据库中的两个表合并

  3. 3

    在SQL Server 2008的同一数据库中复制表,然后更新内容

  4. 4

    同步两个SQL Server 2008数据库

  5. 5

    同步两个SQL Server 2008数据库

  6. 6

    两个用户可以连接到数据库并在SQL Server中同时更新表的同一行吗?

  7. 7

    比较SQL Server中两个不同数据库中两个存储过程之间的代码

  8. 8

    比较SQL Server 2008中的数据库

  9. 9

    在 SQL Server 中逐行比较两个不同表中的两个文本列

  10. 10

    同步两个数据库表SQL Server

  11. 11

    如何在单个存储过程中合并两个不同的 SQL Server 2012 数据库表?

  12. 12

    比较SQL Server中同一表的列

  13. 13

    比较SQL Server中同一表的列

  14. 14

    在同一表中查询MS SQL Server中的数据库列表

  15. 15

    从SQL Server中单个表的数据比较两个不同时期

  16. 16

    从SQL Server中的两个表中检索数据

  17. 17

    SQL Server:合并两个表中的数据

  18. 18

    在SQL Server中使用同一表在一个表中合并两个不同的行

  19. 19

    如何更改SQL Server(2008)数据库的日期格式?

  20. 20

    SQL Server 2008,通过从不共享相同列信息的两个不同表中选择两个列来获取一个新表

  21. 21

    如何在SQL Server 2012数据库的一个表中分配许多列

  22. 22

    如何将SQL Server 2008表从一个数据库导入到另一个数据库中的多个表中?

  23. 23

    一个表在SQL Server中可以有两个标识列吗?

  24. 24

    使用两个WHERE条件从同一张表中两次选择一列SQL SERVER

  25. 25

    连接并比较两列与 SQL Server 2008 中其他表中的列?

  26. 26

    数据库备份中的元数据-SQL Server 2008

  27. 27

    如何将SQL Server 2008表从一个数据库导入到另一个数据库的多个表中?

  28. 28

    从 SQL Server 中的另一个数据库表插入选择

  29. 29

    SQL Server 2005数据库比较

热门标签

归档