
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あるカラムのMAX値+1をINSERTし...
-
GROUP BYを行った後に結合した...
-
OracleのSQL*PLUSで、デー...
-
Oracleでの文字列連結サイズの上限
-
select insertで複数テーブルか...
-
Accessで別テーブルの値をフォ...
-
VLOOKUPについて
-
ACCESSの集計クエリで3件ある...
-
Excelで、改行がある場合の条件...
-
cursor.getString
-
ADO VBA 実行時エラー3021
-
日本語の表名、列名の利用について
-
最新の日付とその金額をクエリ...
-
実績累計の求め方と意味を教え...
-
SET句内で複数の条件を指定して...
-
決定性有限オートマトン
-
キーが同じを複数行を1行にま...
-
Date型にNULLをセットしたい V...
-
エクセルで複数列、複数行の数...
-
アクセスでレポートの1印刷内...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるカラムのMAX値+1をINSERTし...
-
レコードが選択されないときの...
-
複数行を1行にするSQL
-
Oracle 9iで英字を含まないレコ...
-
distinct句を使わずレコード総...
-
副照会を簡単に使いまわせますか?
-
SQLPLUSにて演算子を使う方法と...
-
同一データの抽出の方法について
-
Oracle8iでSQL文の引数について
-
通番を振りたい
-
ストアドのselect文で別テーブ...
-
ループの仕方
-
教えて下さい。m(__)m
-
SQL:外部結合について
-
PL/SQLの基礎的な質問ですが・・
-
SELECT文でINを使わずに検索したい
-
複数条件に当てはまる行の抽出...
-
OracleSqlで『RORNUM...
-
テーブル結合について、下記SQL...
-
GROUP BYを行った後に結合した...
おすすめ情報