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

SQLServerでSUBQUERYの子をクエリする

次の記事では、SQLServerでサブクエリを使用する方法と構文および例を示します。

SQLのサブクエリ(サブクエリ)とは何ですか?

SQL Serverでは、サブクエリは別のクエリに存在するクエリです。 SQLコマンドでクエリを作成できます。これらのサブクエリは、WHERE、FROM、またはSELECT句にあります。

注:

  1. サブクエリは、INNERQUERYまたはINNERSELECTとも呼ばれます。
  2. サブクエリを含むメインクエリは、OUTERQUERYまたはOUTERSELECTと呼ばれます。

WHERE句

通常、サブクエリはWHERE句にあります。これらのサブクエリは、ネストされたクエリまたはサブクエリと呼ばれます。

  SELECT s.sanph am_id, s.sanpham_ten 
FROM sanpham s
WHERE s.sanpham_id IN
(SELECT htk.sanpham_id
FROM hangtonkho htk
WHERE htk.soluong > 10);

これは、上記のSELECTステートメントのサブクエリセグメントです:

  (SELECT htk.sanp ham_id 
FROM hangtonkho htk
WHERE htk.soluong > 10);

サブクエリを使用すると、hangtonkhoテーブルから10より大きい数値のsanpham_id値を見つけることができます。次に、サブクエリを使用して、IN条件を使用してメインクエリの結果をフィルタリングします。 。

サブクエリは、以下に示すように内部結合として記述できます。

  SELECT s.sanpham_id, s. sanpham_ten 
FROM sanpham s
INNER JOIN hangtonkho htk
ON s.sanpham_id = htk.sanpham_id
WHERE htk.soluong > 10;

INNER JOINは、元のサブクエリよりも効率的に返されます。 JOINによってクエリが書き換えられないことに注意することも重要です。

FROM句

  SELECT nhacu ng.nhacung_ten, truyvancon1.tong_sl 
FROM nhacung,
(SELECT nhacung_id, SUM(donhang.soluong) AS tong_sl
FROM donhang
GROUP BY nhacung_id) truyvancon1
WHERE truyvanco n1.nhacung_id = nhacung.nhacung_id;

この例では、FROM句に次のようにサブクエリを作成しました。

  (SELECT nhacung _id, SUM(donhang.soluong) AS tong_sl 
FROM donhang
GROUP BY nhacung _id) truyvancon1

このサブクエリは、エイリアスtruyvancon1にも関連付けられています。これは、このサブクエリまたはその情報フィールドのいずれかを参照するために使用される名前になります。

SELECT句

通常、サブクエリはSELECT句で設定され、SUM、COUNT、MIN、MAXなどの合計関数で計算されますが、メインクエリではカウントされません。

  SELECT n1.ho, n1 .ten, 
(SELECT MAX(luong)
FROM nhanvien n2
WHERE n1.nhanvien_id = n2.nhanvien_id) truyvancon2
FROM nhanvien n1 ;

以下は、上記の例で作成されたサブクエリです

  (SELECT MAX ong) 
FROM nhanvien n2
WHERE n1.nhanvie n_id = n2.nhanvien_id) truyvancon2

このサブクエリは、エイリアスtruyvancon2にも関連付けられています。これは、このサブクエリまたはその情報フィールドのいずれかを参照するために使用される名前になります。

サブクエリは単一の値を返すため、SELECT句にサブクエリを配置するトリックが使用されます。そのため、SUM、COUNT、MIN、MAXなどの合計関数がサブクエリでよく使用されます。


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

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

  2. MicrosoftSQLServerクエリストア

    Microsoft®SQLServer®クエリストアは、その名前が示すように、実行されたクエリのデータベース履歴、クエリの実行時実行統計、および実行プランをキャプチャするストアのようなものです。データはディスクに保存されるため、トラブルシューティングの目的でいつでもクエリストアデータを取得できます。SQLServerを再起動してもデータに影響はありません。 SQL Server 2016で導入され、以降のすべてのエディションで利用できるクエリストアを使用して、クエリプランの変更によって引き起こされるパフォーマンスの問題をトラブルシューティングします。 はじめに ベースラインデータ分析はパフォ