select max(COL_1) from TBL
where COL2 = 'hoge';
というようなSQLがあり、この条件での選択されるレコードが存在しないとき
max(COL_1)の値を"0"(ゼロ)にしたいのですが。。。
select nvl(max(COL_1),NULL,0) from TBL
where COL2 = 'hoge';
と修正しても結果は変わらず「レコードが選択されませんでした。」
となってしまいます。
他にdecodeや、countも試したのですが、力量不足のため、上手くいきません。。
どなたかご教授願います。
Oracle 9i で SQL*Plus 使用しています。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
dual表から1件0を取得し、集計したらどうでしょう。
select A.COL, sum( nvl( CNT, 0 ) )
from (
select COL_2 COL
, count( COL_1 ) CNT
from TBL
where COL_2 = 'hoge'
group by COL_2
union
select 'hoge' COL
, 0 CNT
from dual
) A
group by A.COL
No.2
- 回答日時:
外部結合にしてはいかがでしょうか。
select decode(count(COL_1),0,0,max(COL_1)) col_1,
COL_2
from TBL
where COL_2(+) = 'hoge'
group by COL_2;
実際に環境がないため断言はできませんが
結果は
col_1 col_2
---------------
0 null
になるはずです。
No.1
- 回答日時:
> select nvl(max(COL_1),NULL,0) from TBL
> where COL2 = 'hoge';
でなく
select nvl(max(COL_1),0) from TBL
where COL2 = 'hoge';
とする。
この回答への補足
回答ありがとうございます。
すこし質問内容が間違っておりました。
正確に申しますと、group byを使用した際の
NO_ROW時の帰り値の差異に関する質問となります。
select decode(count(COL_1),0,0,max(COL_1))
from TBL
where COL_2 = 'hoge';
では、ちゃんと数字が帰ってきます。(レコードが存在しない場合は'0'で。)
ところが、↓だとレコードが無い場合には
レコードが選択されませんでした。 と値を返してくれません。。
どうすればよろしいでしょうか。。
select decode(count(COL_1),0,0,max(COL_1)),COL_2
from TBL
where COL_2 = 'hoge'
group by COL_2;
何卒、ご教授を御願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
【お題】引っかけ問題(締め切り10月27日(日)23時)
【大喜利】 「日本で一番高い山は富士山……ですが!」から始まった、それは当てられるわけ無いだろ!と思ったクイズの問題
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
テーブルからのselectにおいてデータの有無により結果をわけたい
PostgreSQL
-
SQLでSUMなどの関数でデータが無い時に0を返したい。
Oracle
-
PL/SQLのコンパイルエラーについて(ignored)
Oracle
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
副問合せにLIKE文を使う方法は...
-
子供向けプログラミングのスク...
-
orace SQL文のエラー(ORA-0092...
-
PL/SQLの変数の命名規則
-
sqlのupdate文で質問です。 テ...
-
データベースのカラムの型がCHA...
-
CASLⅡ 文字データから数値デー...
-
バッチファイルで複数フォルダ...
-
sqlで質問です。 Aテーブルは店...
-
SQLの中上級者へのレベルアップ...
-
SELECTによる表の変換方法を教...
-
開発対象となるアプリケーショ...
-
質問です。 下記のテーブルとデ...
-
Oracleですがsqlで質問です。 ...
-
sqlで質問です。 Aテーブルの登...
-
sqlで質問です。 Aテーブルの情...
-
SQLの書き方について
-
SQLについて教えて下さい。 主...
-
sqlで質問です。 idを元にidに...
-
oracleで 10,20, 30, というデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるカラムのMAX値+1をINSERTし...
-
レコードが選択されないときの...
-
複数行を1行にするSQL
-
sumやcount関数について
-
テーブル結合について、下記SQL...
-
PL/SQLの基礎的な質問ですが・・
-
distinct句を使わずレコード総...
-
Oracle 9iで英字を含まないレコ...
-
Oracle8iでSQL文の引数について
-
SQLPLUSにて演算子を使う方法と...
-
DB2の行指定検索SQLについて
-
通番を振りたい
-
同一データの抽出の方法について
-
教えて下さい。m(__)m
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
select insertで複数テーブルか...
-
Accessで別テーブルの値をフォ...
-
実績累計の求め方と意味を教え...
-
select句副問い合わせ 値の個...
おすすめ情報