[解決済み] 条件付きJOINステートメント SQL Server
2022-03-02 15:26:36
質問
以下のようなことは可能でしょうか?
IF [a] = 1234 THEN JOIN ON TableA
ELSE JOIN ON TableB
その場合、正しい構文は何ですか?
どのように解決するのですか?
を結合することで、ご質問の内容はうまくいくと思います。
初期
テーブルを
オプション_A
と
オプション_B
を使って
LEFT JOIN
とすると、次のようになります。
Initial LEFT JOIN Option_A LEFT JOIN NULL
OR
Initial LEFT JOIN NULL LEFT JOIN Option_B
コード例です。
SELECT i.*, COALESCE(a.id, b.id) as Option_Id, COALESCE(a.name, b.name) as Option_Name
FROM Initial_Table i
LEFT JOIN Option_A_Table a ON a.initial_id = i.id AND i.special_value = 1234
LEFT JOIN Option_B_Table b ON b.initial_id = i.id AND i.special_value <> 1234
これを実行すると、NULLSのセットを「無視」することになります。 ここでの追加のトリックはSELECT行にあり、NULLフィールドをどうするかを決める必要があります。 Option_A と Option_B のテーブルが類似している場合、Option_A と Option_B のテーブルの間で
COALESCE
関数を使用して、最初のNULLでない値を返します(この例のように)。
もうひとつの方法は、Option_A フィールドと Option_B フィールドを単純にリストアップし、Option_A フィールドと Option_B フィールドの両方で
ResultSet
を使用して、どのフィールドを使用するかを決定します。
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQLのSELECTでIF...THENを実行するにはどうすればよいですか?
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] JOINとINNER JOINの違いについて
-
[解決済み] SQL ServerでJOINを使用してテーブルを更新しますか?
-
[解決済み] T-SQLです。結合で削除する行を選択する
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] データベース 'tempdb' で CREATE TABLE 権限が拒否されました。
-
[解決済み] TABLOCKとTABLOCKXの比較
-
[解決済み] Microsoft OLE DB Provider for SQL Server エラー '80040e14' '=' 付近の構文が正しくない
-
[解決済み] SSIS - データ損失の可能性があるため、値を変換することはできません。
-
[解決済み] SQL Server : ログインに成功しましたが、「データベース [dbName] にアクセスできません。(ObjectExplorer) "と表示されました。
-
[解決済み] データ損失の可能性があるため、スキーマの更新を終了します。
-
[解決済み] T-SQL XOR 演算子
-
[解決済み] SQL Server : ログインに成功しましたが、「データベース [dbName] にアクセスできません。(ObjectExplorer) "と表示されました。
-
[解決済み] UPDATEエラーです。"REPLACEの引数1の引数データ型textは無効です"
-
[解決済み] データベース内の全テーブルのサイズを取得する