いつもお世話になっております。
以下のようなファンクションの中でカウント数を戻り値として返したかったのですが、当然「0」の場合は「0」で返したいのですが、当初以下の場合には「ORA-01403: データが見つかりません。」エラーが発生し上手くいきませんでした。
省略
begin
select count(colA) into aaa ~~ group by colB;
ret = nvl(aaa,0)
return ret;
end;
調査のためselect文だけを切り取りSQLPlusにて実行したところ、「レコードが選択されませんでした」となっておりました。
今度は試しに、「select count(count(colA)) into aaa ~~ group by colB;」としたところ、「0」で返ってきましたし、1以上の場合も正しい数値で返ってきました。
同じようにselect文だけを切り取りSQLPlusにて実行したところ、以下のような結果となりました。
count(count(colA))
---------------------
これは、nullという意味になるのでしょうか??
「レコードが選択されませんでした」との違いはなんなのでしょうか?また、通常PL/SQLにてカウント数=0を返したいときはどのようにするものなのでしょうか?ご教授いただければと思います。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
後者のケースではこちらで試した限りは
count(count(colA))
---------------------
0
というようにゼロが返ってきますね。
ただ、問題はそこよりも「Group By」していることだと思います。
Group Byは条件に合致したレコードに対して行うので、該当するレコードがなければ、キーも存在しないので、NULLになりますが、
Group Byを切らなければ、かならず0が返るはずです。
もし、グルーピングしたColBの件数が取りたくてやっているのであれば、
SELECT COUNT(DISTINCT ColB) FROM ...が普通です。
ご回答ありがとうございます!
SELECT COUNT(DISTINCT ColB) FROM ...で上手くいけました。
ただ、0は返ってこずNULLになりましたが。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- Visual Basic(VBA) Sheet1の出荷日と品名が並んだ表からSheet2の品名別出荷日別の個数一覧表を作っています。 オ 3 2022/12/01 23:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あるカラムのMAX値+1をINSERTし...
-
複数条件に当てはまる行の抽出...
-
テーブル結合について、下記SQL...
-
SQLPLUSにて演算子を使う方法と...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
実績累計の求め方と意味を教え...
-
MERGE文を単体テーブルに対して...
-
DataGridViewの、選択されてい...
-
MySQLで MAX()とGROUP BYを使う...
-
select句副問い合わせ 値の個...
-
ファイル書込みで一行もしくは...
-
チェックボックスの項目をDBにi...
-
アクセスで「空き番」の確認
-
Access でレコードセレクタが押...
-
SQLの集計で「全て」の合計も表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードが選択されないときの...
-
複数行を1行にするSQL
-
sqlのwhereで指定した条件の前...
-
あるカラムのMAX値+1をINSERTし...
-
外部結合に条件をつけたい
-
ループの仕方
-
Oracle8iでSQL文の引数について
-
テーブル結合について、下記SQL...
-
sumやcount関数について
-
PL/SQLの基礎的な質問ですが・・
-
SQLPLUSにて演算子を使う方法と...
-
複数条件に当てはまる行の抽出...
-
distinct句を使わずレコード総...
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
Oracleでの文字列連結サイズの上限
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
select句副問い合わせ 値の個...
おすすめ情報