1. 存在する1.1 説明EXISTS (NOT EXISTS を含む) 句の戻り値は BOOL 値です。 EXISTS (SELECT ... FROM ...) 内にはサブクエリ ステートメントがあり、これを EXIST の内部クエリ ステートメントと呼びます。クエリ ステートメントは結果セットを返します。 EXISTS 句は、クエリ ステートメントの結果セットが空かどうかに応じてブール値を返します。 exists: は、何が返されるかではなく、結果セットが返されるかどうかを強調します。たとえば、 内部結合と比較すると、exists の方がパフォーマンスが優れています。条件を満たす最初のレコードが見つかると、すぐに検索を停止し、TRUE を返します。 1.2 例--存在する --SQL: family_memberから名前を選択 ここで、group_level > 0 かつ存在する(family_gradeから1を選択、family_member.name = family_grade.name) グレード90以上) - 結果: 名前 チェリー --存在しない --SQL: family_memberから名前を選択 ここで、group_level > 0 存在しない(family_grade から 1 を選択、family_member.name = family_grade.name) グレード90以上) - 結果: 名前 迷路 うさぎ 1.3 交差/2017-07-21intersect は exists と同様に機能します。 --交差する --SQL: グループレベル > 0 の family_member から名前を選択 交差する グレードが 90 より大きい family_grade から名前を選択 - 結果: 名前 チェリー 2. 除く2.1 説明クエリ結果では、EXCEPT = NOT EXISTS、INTERSECT = EXISTS ですが、EXCEPT/INTERSECT の「クエリ オーバーヘッド」は NOT EXISTS/EXISTS よりもはるかに大きくなります。 Except は重複を自動的に削除しますが、not in/not exists は削除しません。 2.2 例- を除外する --SQL: family_memberから名前を選択 ここで、group_level > 0 except(family_gradeから名前を選択) - 結果: 名前 うさぎ --存在しない --SQL: family_memberから名前を選択 ここで、group_level > 0 存在しません(family_grade から名前を選択します。family_member.name = family_grade.name) - 結果: 名前 うさぎ うさぎ 3. テストデータ重複排除機能以外を検証すると、family_memberにrabbitが追加されます。 -- ---------------------------- -- family_grade のテーブル構造 -- ---------------------------- テーブル[mazeytop].[family_grade]を削除します 行く テーブル[mazeytop].[family_grade]を作成します( [id] int NOT NULL , [名前] varchar(20) NULL , [グレード] int NULL ) 行く -- ---------------------------- -- family_gradeの記録 -- ---------------------------- [mazeytop].[family_grade] ([id], [name], [grade]) に挿入します。VALUES (N'1', N'mazey', N'70') 行く 行く [mazeytop].[family_grade] ([id], [name], [grade]) に挿入します。値 (N'2', N'cherrie', N'93') 行く 行く -- ---------------------------- -- family_member のテーブル構造 -- ---------------------------- テーブル[mazeytop].[family_member]を削除します 行く テーブル[mazeytop].[family_member]を作成します( [id] int NOT NULL , [名前] varchar(20) NULL , [性別] varchar(20) NULL , [年齢] int NULL , [グループレベル] int NULL ) 行く -- ---------------------------- -- family_memberの記録 -- ---------------------------- [mazeytop].[family_member] ([id], [name], [sex], [age], [group_level]) に INSERT INTO VALUES (N'1', N'mazey', N'male', N'23', N'1') を挿入します 行く 行く [mazeytop].[family_member] ([id], [name], [sex], [age], [group_level]) に INSERT INTO VALUES (N'2', N'cherrie', N'female', N'22', N'2') を挿入します。 行く 行く [mazeytop].[family_member] ([id], [name], [sex], [age], [group_level]) に INSERT INTO VALUES (N'3', N'rabbit', N'female', N'15', N'3') を挿入します。 行く 行く [mazeytop].[family_member] ([id], [name], [sex], [age], [group_level]) に INSERT INTO VALUES (N'4', N'rabbit', N'female', N'15', N'3') を挿入します。 行く 行く -- ---------------------------- -- family_part のテーブル構造 -- ---------------------------- テーブル[mazeytop].[family_part]を削除します 行く テーブル[mazeytop].[family_part]を作成します( [id] int NOT NULL , [グループ] int NULL , [グループ名] varchar(20) NULL ) 行く -- ---------------------------- -- family_partの記録 -- ---------------------------- [mazeytop].[family_part] ([id], [group], [group_name]) に INSERT INTO VALUES (N'1', N'1', N'father') を挿入します。 行く 行く [mazeytop].[family_part] ([id], [group], [group_name]) に INSERT INTO VALUES (N'2', N'2', N'mother') 行く 行く [mazeytop].[family_part] ([id], [group], [group_name]) に INSERT INTO VALUES (N'3', N'3', N'daughter') 行く 行く -- ---------------------------- -- テーブル family_grade のインデックス構造 -- ---------------------------- -- ---------------------------- -- テーブル family_grade の主キー構造 -- ---------------------------- ALTER TABLE [mazeytop].[family_grade] 主キーを追加します ([id]) 行く -- ---------------------------- -- テーブル family_member のインデックス構造 -- ---------------------------- -- ---------------------------- --テーブル family_member の主キー構造 -- ---------------------------- ALTER TABLE [mazeytop].[family_member] 主キーを追加します ([id]) 行く -- ---------------------------- -- テーブル family_part のインデックス構造 -- ---------------------------- -- ---------------------------- -- テーブル family_part の主キー構造 -- ---------------------------- ALTER TABLE [mazeytop].[family_part] 主キーを追加します ([id]) 行く SQL Server での exists と except の使用法に関するこの記事はこれで終わりです。SQL Server での exists と except に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linux でのソース パッケージ インストールのサービス管理
>>: Vueでブラウザタイトルを動的に設定する方法の詳細な説明
目次タイプ判定から始める厳格な平等エラーファーストと約束デバッグと出力タイプ判定から始めるJavaS...
iframeを更新する方法1. 更新するには、JavaScriptのdocument.fr.loca...
まず、どのフィールドまたはフィールドの組み合わせがデータ行を一意に識別できるかを決定する必要がありま...
序文Linux システムの運用および保守エンジニア職の面接を受ける場合は、次の 10 個の最も一般的...
yumを使用してcentos7.3にDocker V1.13.1をインストールしましたしかし、doc...
1. データベースにログインするには、rootユーザーを使用することをお勧めします。 mysql -...
このチュートリアルでは、Linux ターミナルでドメイン名またはコンピューター名の IP アドレスを...
1. はじめに最近ブログをアップグレードし、記事ページの下部に前の記事と次の記事に直接ジャンプできる...
序文この記事では、docker-compose と dockerfile を使用して、binlog ...
最近、MySQL を使用してテーブル データを Excel ファイルにエクスポートしました。MySQ...
インターネット上には多くのチュートリアルがありますが、基本的には同じです。ただし、細かい原因でソフト...
目次1 約束呼び出しチェーンを中断する約束を破る中止メソッドのラッピング - Axios の Can...
前回の記事では、MySQL 5.7でルートパスワードを忘れた場合と、MySQL 5.7でルートパスワ...
XML スキーマは、DTD に代わる XML ベースのものです。 XML スキーマは、DTD に代わ...
PostgreSQL はコンパイルされインストールされるため、起動時に起動するように設定する必要があ...