質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

20193閲覧

SQLのwhere句内での条件分岐について

b_b_b

総合スコア32

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/04/15 10:50

編集2018/04/15 11:13

以下のような SQL文に対して例えば、
B.flg=1の時だけ、WHERE句中のAND e=fを追加したい場合どのようにすればよいでしょうか?

case文を使うのかなと思っていますが上手くいきません。
ご教示頂ければ幸いです。

SQL

1SELECT A 2FROM B 3WHERE c=d 4AND e=f 5AND g=h

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

SELECT A
FROM B
WHERE c=d
AND (B.flg<>1 OR e=f)
AND g=h

投稿2018/04/15 11:07

編集2018/04/15 11:20
iruyas

総合スコア1067

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

b_b_b

2018/04/15 11:24

すいません、こちらはB.flg=1のときのみe=fの条件が追加される文になっていますでしょうか?
b_b_b

2018/04/15 11:32

このSQLで実行すると成功しました!ありがとうございます!
guest

0

同じSQLでもデータベースによってかなり方言があります。タグでデータベースを明示した方が適切なコメントが付き易いです。

Dflg=1の時だけ、WHERE句のDを追加したい場合どのようにすればよいでしょうか?

Dが何かはわかりませんが、きちんとしたコメントをもらうためにはCREATE TABLE文を提示すると良い程度の知識は欲しいです。他の人の質問を読んでね。

SQL

1WHERE 2 CASE WHEN Dflg=1 THEN Dを追加(どいう意味かわからないけど) 3 END

投稿2018/04/15 10:55

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/15 10:59

Dのつくフラグといったら、DeleteFlagよねぇ…。
Orlofsky

2018/04/15 11:01

[いいね]ボタンが欲しいところ。笑い
b_b_b

2018/04/15 11:18

SELECT A FROM B WHERE c=d CASE WHEN flg=1 THEN AND e=f END AND g=h という風に修正したのですが、 SQL実行エラー SQLコマンドが正しく終了されていませんとのエラーメッセージが出ました。 どのようにすれば良いでしょうか? よろしくお願いします。
退会済みユーザー

退会済みユーザー

2018/04/15 11:18

もう、日本の悪しき風習が身体に染みついてます…。
Orlofsky

2018/04/15 11:20

luckerさんが甘やかすから、CREATE TABLE文さえ提示できないという困った状況。
Orlofsky

2018/04/15 11:21

b_b_bさんは質問を修正してください。
退会済みユーザー

退会済みユーザー

2018/04/15 11:22

ふぇぇ。わしのせいかぇ…
退会済みユーザー

退会済みユーザー

2018/04/15 11:25

世知辛いのぉ…。
Orlofsky

2018/04/16 00:34 編集

SQLの研修さえせずにマニュアル読んでわからないところはググれ、だけで新人を現場に投入する腐った会社が日本を滅ぼすんです。
退会済みユーザー

退会済みユーザー

2018/04/15 11:33

だぁって、とっくに日本滅んでるしぃ…。みんなで一緒にずぶずぶ沈んで行こうよぅ…。
Orlofsky

2018/04/15 11:40

嫌だ。luckerさんと曽根崎心中するメンバーのリストに載るのはワタシは拒否します。爆
退会済みユーザー

退会済みユーザー

2018/04/15 11:42

シドイ…
b_b_b

2018/04/15 11:44

コメントいただきありがとうございます。 次回以降質問する際、指摘していただいた点について気をつけます。 iruyasさんの回答で上手く行きましたのでiruyasさんをベストアンサーにしましたが、これからもよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問