Sql 如何比较两个表并获取更改的数据
我有一个这样的查询:这个查询从T\u Order\u头获取数据Sql 如何比较两个表并获取更改的数据,sql,sql-server,Sql,Sql Server,我有一个这样的查询:这个查询从T\u Order\u头获取数据 select F_Exhibitor,F_Stand from T_Order_Header where F_Exhibition='12004' output -------- F_exhibitor F_stand 2477 C1 2488 C2 2489 C3 我还有另一个疑问:这是从T_参展商位置获取的 select F_ExhibitorCode,F_S
select F_Exhibitor,F_Stand
from T_Order_Header
where F_Exhibition='12004'
output
--------
F_exhibitor F_stand
2477 C1
2488 C2
2489 C3
我还有另一个疑问:这是从T_参展商位置获取的
select F_ExhibitorCode,F_Stand
from T_ExhibitorLocation
where F_ExhibitionCode='12004'
output
--------
F_ExhibitorCode F_stand
2477 C1
2488 c2
2489 B1
参展商的T_订单标题表和参展商所在地的T_参展商代码相同
我想比较这两个表,并检查任何立场没有改变。如果任何立场没有改变,我想展示一下。试试这个
select toh.F_Exhibitor,toh.F_Stand
from T_Order_Header toh
INNER JOIN T_ExhibitorLocation tel
ON toh.F_exhibitor= tel.F_ExhibitorCode
WHERE toh.F_stand = tel.F_stand
AND toh.F_Exhibition='12004'
如果要添加指示值是否相等或是否应检查的计算列,可以使用以下方法:
SELECT
o.F_Exhibitor,
o.F_Stand AS OrderHeaderStand,
e.F_Stand AS ExhibitorLocationStand,
CASE
WHEN o.F_Stand = e.F_Stand THEN 'Equal'
WHEN o.F_Stand IS NULL AND e.F_Stand IS NULL THEN 'Equal'
ELSE 'Check'
END AS Equal
FROM T_Order_Header o
INNER JOIN T_ExhibitorLocation e
ON o.F_exhibitor= e.F_ExhibitorCode
WHERE o.F_Exhibition='12004'
使用
(query1)INTERSECT(query2)
显示两个查询中相同的记录如果我使用此输出,我将得到SIR您将得到2477 C1 2488 C2
,只需尝试选择F_参展商,F_展位从F_订单标题中选择F_展会='12004'INTERSECT选择F_参展商代码,F_站在T_ExhibitorLocation,F_ExhibitorCode='12004'
自己尝试这个查询,集合(A,B,C)和(B,C,D)的交集是(B,C)您期望的输出是什么?可能您也应该在预期输出中显示一些空值。不明确的列名“F_展台”。这表明两者都匹配?您将得到2477 C1 2488 C2ok..我的查询如下:从t_订单头更新o集o.F_展台=e.F_展台o内部连接t_展台e.F_展台代码=o.F_展台和o.F_展台=“12004”但如果我在T_order_标题表中有一行,如F_Exhibitor 2486和F_stand null,则这不会更新