同じテーブルから2つの行を比較する方法 (SQL Server)
私は、異なるステータスを持つ特定のIDに一致する行を探すためにテーブルを処理するバックグラウンドジョブを作成する必要があります。それは、一致するidを持つ行とデータを比較するために、文字列に行のデータを格納します。
行データを取得する構文は知っていますが、同じテーブルから2つの行を比較したことがありません?それはどのように行われるのでしょうか?それぞれのデータを格納するために変数を使用する必要があるのでしょうか?それとも他の方法ですか?
(SQLサーバー2008を使用)
18
5
テーブルを自分自身に結合することは何度でも可能で、これを自己結合と呼びます。
テーブルの各インスタンスには、(以下の例のように)エイリアスが割り当てられ、1つを別のものと区別します。
OK、2年経ってようやく構文を修正する時が来ました。
次のような代替構文を使うと、何が起こっているのかがわかりやすいという人もいます。
SELECT COUNT(*)FROM(SELECT * FROM tbl WHERE id = 1 UNION SELECT * FROM tbl WHERE id = 2)a
。2つの行がある場合、それらは異なります(1つでも同じ)。