以下の演算子を組み合わせて使用することで、テーブルの内容を
比較できます!
・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つのテーブルの内容が同じであることが確認できました。