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

SQLServerのUNIONALL演算子

UNION ALL演算子は、SQLServerの2つ以上のSELECTステートメントからの結果セットを組み合わせるために使用されます。

UNION演算子とは異なり、UNION ALL演算子はクエリからすべての行を返し、重複する行は削除しません。

UNION演算子の各SELECTは、対応するデータ型の結果セットに同じ数の列を持っている必要があります。

UNIONALL演算子の構文

  SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn 
FROM bang
[WHERE dieu_kien]
UNION ALL
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_k ien];

変数名または変数値

bieu_thuc1、bieu_thuc2 、。 bieu_thucn

取得する列または計算値。

状態

テーブルがレコードを取得しようとしています。 FROM句に少なくとも1つのテーブルが必要です。

どこでdieu_kien

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

注:

  1. 2つのSELECTステートメントには同じ数の式が必要です
  2. 各SELECTステートメントの対応する列数は、同じデータ型である必要があります
  3. UNION演算子は重複する行を削除しません。
  4. 他のUNIONオペレーターを見る

たとえば、-情報フィールドを返します

  SEL ECT sanpham_id 
FROM sanpham
UNION ALL
SELECT sanpham_id
FROM hangtonkho;

この例では、sanphamテーブルとhangtonkhoテーブルの両方に表示される場合、結果セットに多くのsanpham_idが返されます。重複を削除する場合は、UNION要素全体を使用してください。

例-ORDERBYを使用

UNION ALL演算子は、ORDERBY句を使用してクエリ結果を並べ替えることができます。

  SELECT dan hba_id, danhba_ten 
FROM danhba
WHERE ten_trang = 'QuanTriMang.com'
UNION ALL
SELECT congty_id, congty_ten
FROM congty
WHERE ten_trang = 'TrangCuaBan.com'
ORDER BY 2;

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

danhba_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データベ