![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
テーブルからのselectにおいてデータの有無により結果をわけたい
PostgreSQL
-
SQLでSUMなどの関数でデータが無い時に0を返したい。
Oracle
-
SQLサーバに対するSQL文で抽出した時にないレコードを0で表示させるには?
SQL Server
-
-
4
単一グループのグループ関数ではありません。
Oracle
-
5
PL/SQLのコンパイルエラーについて(ignored)
Oracle
-
6
GROUP BYを行った後に結合したい。
Oracle
-
7
PL/SQLでログを確認したい。
Oracle
-
8
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
9
FROM の中で CASE を使えるでしょうか
SQL Server
-
10
あるDBから別のDBのテーブルをselectしたい
MySQL
-
11
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あるカラムのMAX値+1をINSERTし...
-
レコードが選択されないときの...
-
複数行を1行にするSQL
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
SQL文で右から1文字だけ削除す...
-
SELECTで1件のみ取得するには?
-
Accessで別テーブルの値をフォ...
-
Excelでセルの書式設定を使用し...
-
select句副問い合わせ 値の個...
-
使うべきでない文字。
-
DataGridViewの内容をDBに反映...
-
最新の日付とその金額をクエリ...
-
SQL>UPDATEと同時にその件数を...
-
DATE型にNULLをセットするには?
-
ファイル書込みで一行もしくは...
-
JSPのNULLレコード表示について...
-
固定値を含む結合と複数テーブ...
-
oracleの分割delete
-
sum()の出力結果順に並び替えを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるカラムのMAX値+1をINSERTし...
-
レコードが選択されないときの...
-
sqlのwhereで指定した条件の前...
-
複数行を1行にするSQL
-
テーブル結合について、下記SQL...
-
SQLPLUSにて演算子を使う方法と...
-
ループの仕方
-
複数条件に当てはまる行の抽出...
-
sumやcount関数について
-
外部結合に条件をつけたい
-
Oracle 9iで英字を含まないレコ...
-
SQLのCOUNT件数表示について
-
PL/SQLの基礎的な質問ですが・・
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
select句副問い合わせ 値の個...
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
おすすめ情報