2つのテーブルの内容を比較し、等しいかどうかを確認する

以下の演算子を組み合わせて使用することで、テーブルの内容を
比較することができます!
・UNION演算子
・EXCEPT演算子
・INTERSECT演算子

準備

以下のSQLを実行し、テーブルの作成/データの登録をします。
ここでは同じ内容の以下2つのテーブルを作成します。
・employee
・employee_20200922

--テーブル①の作成
CREATE TABLE employee(
	id      CHAR(5)      PRIMARY KEY,
	name    VARCHAR(10),
	sex     CHAR(2),
	section VARCHAR(10)
)

--テーブル①へデータの登録
INSERT employee (id, name, sex, section) VALUES ('00001', '鈴木一郎', '男', '営業課')
INSERT employee (id, name, sex, section) VALUES ('00002', '田中二郎', '男', '総務課')
INSERT employee (id, name, sex, section) VALUES ('00003', '佐藤三郎', '男', '経理課')

--テーブル①のデータをテーブル②へ登録
SELECT * INTO employee_20200922
FROM employee

SQL実行

以下の以下の演算子を組み合わせて使用し、作成した2つのテーブルの内容を比較します。
・UNION演算子
・EXCEPT演算子
・INTERSECT演算子

DECLARE
	@message as varchar(50)

SET @message = '2つのテーブルの内容は...'

SELECT
	CASE WHEN COUNT(*) = 0 
		THEN @message + '等しい!'
		ELSE @message + '等しくない!'
	END AS '比較結果'
FROM
	(
		(	
			--1つ目のテーブルを指定
			SELECT * FROM employee
			UNION
			--2つ目のテーブルを指定
			SELECT * FROM employee_20200922
		)
		EXCEPT
		(
			--1つ目のテーブルを指定
			SELECT * FROM employee
			INTERSECT
			--2つ目のテーブルを指定
			SELECT * FROM employee_20200922
		)
	) TEMP

結果

2つのテーブルの内容が同じであることが確認できます。

タイトルとURLをコピーしました