SQLServerのINTERSECT演算子
SQL Server(Transact-SQL)では、INTERSECT演算子を使用して、データセットまたはSELECTステートメントの両方のレコードを返します。レコードが一方のクエリでのみ使用可能で、もう一方のクエリでは使用できない場合、そのレコードはINTERSECTの結果セットから削除されます。
INTERSECTクエリ
INTERSECTクエリから返された結果を示します
説明: INTERSECTクエリは、青い塗りつぶし領域にあるレコードを返します。これらのレコードは、database1とdatabase2の両方にあります。
INTERSECTの各SELECTには、同じデータ型の結果セットに同じ数の列が含まれている必要があります。
INTERSECT演算子の構文
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kien]
INTERSECT
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kie
n];
変数名または変数値
bieu_thuc
SELECTステートメント間で比較する列または値。各SELECTステートメントで同じ情報フィールドにある必要はありませんが、対応する列には同じデータが含まれている必要があります。
状態
テーブルはそこからレコードを取得したいと考えています。 FROM句に少なくとも1つのテーブルが必要です。
どこでdieu_kien
オプション。選択したレコードの条件が満たされている必要があります。
注:
- 2つのSELECTステートメントには同じ数の式が必要です。
- 各SELECTステートメントの対応する列は、同じデータ型である必要があります。
- INTERSECT演算子は、SELECTステートメント間の一般的なレコードのみを返します。
たとえば、-1つの式を使用
SELECT sanpham_id
FROM sanpham
INTERSECT
SELECT sanpham_id
FROM hangtonk
ho;
この例では、sanpham_idがsanphamテーブルとhangtonkhoテーブルの両方に表示されている場合、INTERSECTの結果セットに含まれます。
次に、このクエリにWHERE条件を追加します。
SELECT sanpham_id
FROM sanpham
WHERE sanpham_id >= 50
INTERSECT
SELECT sanpham_id
FROM hangtonkho
WHERE soluong >
0;
最初のデータセットは、ダッシュボードとsanpham_id
のレコードをフィルタリングして返します。 50以上。2番目のデータセットはhangtonkho
からフィルタリングされます 数値が0より大きい場合はテーブル。
たとえば、複数の式を使用
SELECT danhba_id, ho, ten
FROM danhba
WHERE ho = 'Anderson'
INTERSECT
SELECT nhanvien_id, ho, ten
FROM nh
anvien;
この例では、クエリは2つのSELECTステートメントの共通部分の結果を返します。 danhba
のリストにレコードがある場合 そのdanhba_id
、ho
、ten
danhba
danhba_id
、INTERSECTクエリの名前はそれらのレコードを返します。
例-ORDERBYを使用
INTERSECTクエリでORDERBY句を使用して、結果を並べ替えます。
SELECT nhacung_id, nhacung_ten
FROM nhacung
WHERE nhacung_id > 500
INTERSECT
SELECT congty_id, congty_ten
FROM congty
WHERE congty_ten in ('Apple', 'Microsoft', 'SQL Server')
ORDER BY 2;
2つのSELECTステートメントの列名が異なるため、結果セット内の位置によってORDERBY句の列を参照する方が簡単です。上記の例では、結果をフィルタリングしますnhacung_ten
/ congty_ten
ORDERBY2というフレーズを昇順で並べます。
nhacung_ten
のため / congty_ten
結果セットの2番目です。
-
SQLServerのINTERSECT演算子
SQL Server(Transact-SQL)では、INTERSECT演算子を使用して、データセットまたはSELECTステートメントの両方のレコードを返します。レコードが一方のクエリでのみ使用可能で、もう一方のクエリでは使用できない場合、そのレコードはINTERSECTの結果セットから削除されます。 INTERSECTクエリ INTERSECTクエリから返された結果を示します 説明: INTERSECTクエリは、青い塗りつぶし領域にあるレコードを返します。これらのレコードは、database1とdatabase2の両方にあります。 INTERSECTの各SELECTには、同じデータ
-
MSSQLServerでデータベースを選択する方法
MS SQL Serverでデータベースを選択して、以下のいずれかの方法で操作できます。 方法1:SQL ServerMangementStudioを使用する クエリを実行して、 msdb、という名前のデータベースのバックアップ履歴を選択します。 msdbを選択します 下の画像に示すように。 データベースバックアップセクションから選択 方法2:T-SQLスクリプトを使用する Use クエリを実行して、 msdb、という名前のデータベースのバックアップ履歴を選択します。 msdbを選択します 次のクエリを実行することで Exec use msdb このクエリはmsdbデータベ