Microsoft SQL Server
サブクエリ
サーチ…
サブクエリ
副問合せは、別のSQL問合せ内の問合せです。サブクエリはインナークエリまたはインナーセレクトとも呼ばれ、サブクエリを含むステートメントは外部クエリまたは外部セレクトと呼ばれます。
注意
- サブクエリは括弧で囲む必要があります。
- ORDER BYはサブクエリで使用できません。
- サブクエリでは、BLOB、配列、テキスト・データ型などのイメージ・タイプは使用できません。
サブクエリは、IN、比較演算子などのwhere節、from節、select節の中のselect、insert、updateおよびdelete文とともに使用できます。
サブクエリの例を示すためにクエリを実行するITCompanyInNepalという名前のテーブルがあります。
例: Select文によるサブクエリ
In演算子とwhere句を使用します。
SELECT *
FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA');
比較演算子とWHERE節
SELECT *
FROM ITCompanyInNepal
WHERE NumberOfEmployee < (SELECT AVG(NumberOfEmployee)
FROM ITCompanyInNepal
)
選択句で
SELECT CompanyName,
CompanyAddress,
Headquarter,
(Select SUM(NumberOfEmployee)
FROM ITCompanyInNepal
Where Headquarter = 'USA') AS TotalEmployeeHiredByUSAInKathmandu
FROM ITCompanyInNepal
WHERE CompanyAddress = 'Kathmandu' AND Headquarter = 'USA'
INSERT文を含むサブクエリ
IndianCompanyテーブルからITCompanyInNepalにデータを挿入する必要があります。 IndianCompanyのテーブルは次のとおりです。
INSERT INTO ITCompanyInNepal
SELECT *
FROM IndianCompany
更新文を含む副問合せ
本社が米国であるすべての企業が、米国企業の方針の変更に伴い、ネパールのすべての米国企業から50名の従業員を雇うことにしたとします。
UPDATE ITCompanyInNepal
SET NumberOfEmployee = NumberOfEmployee - 50
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA')
Deleteステートメントを持つサブクエリ
デンマークの本部を持つすべての企業がネパールから企業を閉鎖することにしたとします。
DELETE FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'Denmark')
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow