簡體   English   中英

如何比較具有相同結構的兩個表中的列值,然后選擇具有不同值的列

[英]how to compare column values from two tables with the same structure then select the column with different value

我有兩個表,vessel_details和vessel_history。 這兩個表具有相同的字段。 我必須比較所有字段的值,並選擇具有不同值且不為null的列。 例如,ship_name字段,我必須檢查vessel_details表中的ship_name字段的值是否與vessel_history表中的ship_name不同。 如果值不同且不為null,則必須從vessel_history中選擇並顯示該值。

對正確的查詢有什么想法嗎? 謝謝。

SELECT vessel_details.<your_id>, 'Difference in Column ship_name for ship_name = ' + vessel_history.ship_name 
FROM vessel_details
JOIN vessel_history ON vessel_details.<your_id> ON vessel_history.<id_from_vessel_details>
WHERE vessel_details.ship_name <> vessel_history.ship_name

UNION

SELECT vessel_details.<your_id>, 'Difference in Column ship_model for ship_model = ' + vessel_history.ship_model 
FROM vessel_details
JOIN vessel_history ON vessel_details.<your_id> ON vessel_history.<id_from_vessel_details>
WHERE vessel_details.ship_model <> vessel_history.ship_model

.
.
.

對要檢查的所有列,依此類推。

您正在尋找什么?

每個項目編輯一行:

SELECT vessel_details.<your_id>,
CASE WHEN vessel_details.ship_name <> vessel_history.ship_name THEN Convert(bit, 1) ELSE Convert(bit, 0) END AS ship_name_different,
CASE WHEN vessel_details.ship_model <> vessel_history.ship_model THEN Convert(bit, 1) ELSE Convert(bit, 0) END AS ship_model_different
FROM vessel_details
JOIN vessel_history ON vessel_details.<your_id> ON vessel_history.<id_from_vessel_details>
WHERE vessel_details.ship_name <> vessel_history.ship_name 
OR vessel_details.ship_model <> vessel_history.ship_model

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM