SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQLServerのEXCEPT演算子

SQL ServerのEXCEPT演算子は、2番目のSELECTステートメントでは返されない最初のSELECTステートメントの行を返すために使用されます。各SELECTステートメントにはデータセットがあります。 EXCEPT演算子は、最初のセットからレコードを取得し、セット2から結果を削除します。

クエリを除く

SQLServerのEXCEPT演算子
クエリの図を除く

説明: EXCEPTクエリは、データセット1のみで、データセット2ではなく、青い領域のレコードを返します。

EXCEPTクエリの各SELECTステートメントには、同じデータ型の結果セットに同じ数のフィールドが含まれている必要があります。

演算子構文を除く

  SELECT bieu_thuc1 thuc1, bieu_thuc2, … bieu_thucn 
FROM bang
[WHERE dieu_kien]
EXCEPT
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kie n];

変数名または変数値

bieu_thuc

SELECTステートメント間で比較する列または値。各SELECTステートメントで同じ情報フィールドにある必要はありませんが、対応する列には同じデータが含まれている必要があります。

状態

テーブルはそこからレコードを取得したいと考えています。 FROM句に少なくとも1つのテーブルが必要です。

どこでdieu_kien

オプション。選択したレコードの条件が満たされている必要があります。

注:

  1. 2つのSELECTステートメントには同じ数の式が必要です。
  2. 各SELECTステートメントの対応する列は、同じデータ型である必要があります。
  3. EXCEPT演算子は、2番目のSELECTステートメントではなく、最初のSELECTステートメントからすべてのレコードを返します。
  4. SQL ServerのEXCEPT演算子は、OracleのMINUS演算子と同等です。

たとえば、-1つの式を使用

  SELECT  sanpham_id 
FROM sanpham
EXCEPT
SELECT sanpham_id
FROM hang tonkho;

このEXCEPT演算子を使用した例では、結果は、hangtonkhoテーブルではなく、変数のテーブルにあるすべてのsanpham_id値を返します。これは、sanpham_id値が両方のテーブルで使用可能な場合、返されないことを意味します。

たとえば、複数の式を使用

  SELECT dan hba_id, ho, ten 
FROM danhba
WHERE ho = 'Anderson'
EXCEPT
SELECT nhanvien_id, ho, ten
FROM nhanvien ;

この例では、クエリは連絡先IDを持つnambaテーブルのレコードを返します。名前と名前が、従業員のID、名前、および名前と一致しません。テーブル。

たとえば、ORDERBY句を使用します

  SELECT nh acung_id, nhacung_ten 
FROM nhacung
WHERE bang = 'Florida'
EXCEPT
SELECT congty_id, congty_ten
FROM congty
WHERE congty_id <= 400
ORDER BY 2;

この例では、2つのSELECTステートメントの列名が異なるため、結果セット内の位置を介してORDERBY句で列を参照する方が簡単です。上記の例では、結果nhacung_ten / congty_tenを、フレーズORDERBY2を介して昇順でフィルタリングします。

nhacung_ten/congty_tenが結果セットの2番目であるため。


  1. SQLServerのINTERSECT演算子

    SQL Server(Transact-SQL)では、INTERSECT演算子を使用して、データセットまたはSELECTステートメントの両方のレコードを返します。レコードが一方のクエリでのみ使用可能で、もう一方のクエリでは使用できない場合、そのレコードはINTERSECTの結果セットから削除されます。 INTERSECTクエリ INTERSECTクエリから返された結果を示します 説明: INTERSECTクエリは、青い塗りつぶし領域にあるレコードを返します。これらのレコードは、database1とdatabase2の両方にあります。 INTERSECTの各SELECTには、同じデータ

  2. MSSQLServerでデータベースを選択する方法

    MS SQL Serverでデータベースを選択して、以下のいずれかの方法で操作できます。 方法1:SQL ServerMangementStudioを使用する クエリを実行して、 msdb、という名前のデータベースのバックアップ履歴を選択します。 msdbを選択します 下の画像に示すように。 データベースバックアップセクションから選択 方法2:T-SQLスクリプトを使用する Use クエリを実行して、 msdb、という名前のデータベースのバックアップ履歴を選択します。 msdbを選択します 次のクエリを実行することで Exec use msdb このクエリはmsdbデータベ