
No.7ベストアンサー
- 回答日時:
変則的ですが、これでよければidがユニークでなくても大丈夫ですし、集合関数を使わなくてもOKです。
select dm.id,case when ex1.point is null then 0 else ex1.point end from
(select ? as id) as dm left join ex1 on dm.id = ex1.id;
?を適当に変えてください。
chukenkenkouさんの発想はこれですよね。
おおっ、これはすごい。勉強になります。
chukenkenkouさんの発想からSQL文をつくることが自分にはできなかったのでとても助かりました。
ありがとうございました。
No.4
- 回答日時:
No.1 です。
> ためしてみたら次のようにエラーとなってしまいました.
う、 GROUP BY 句は WHERE 句より後が正しいかも知れません。 すみません。
参考URL:http://www.postgresql.jp/document/pg815doc/html/ …
No.3
- 回答日時:
お礼文ありがとうございます。
あ、そうですね。
WHERE id = あいでぃ
にしてるんだから当然そうなりますね(汗)
と言うことは…
SELECT
CASE
WHEN COUNT(*) > 0
THEN point
ELSE 0
END
FROM ex2
WHERE id = 5
ですね。
ってもうCOALESCEで解決されてるんですね。
久々にSQL文、見たのでなんとなく回答しちゃいました。
申し訳ありません。
再度ありがとうございます。
なるほど、こんな書き方もできるのですね。勉強になりました。
ちなみに下のようにsum(point)として目的の結果を得ました。
SELECT
CASE
WHEN COUNT(*) > 0
THEN sum(point)
ELSE 0
END
FROM ex2
WHERE id = 5;
ありがとうございました。
No.2
- 回答日時:
SELECT
id,
CASE
WHEN point IS NULL
THEN 0
ELSE point
END AS point
FROM てーぶる
WHERE id = あいでぃ
こんな感じでしょうか。
CASE式はSQL-92から標準のようです。
以上、ご参考になりましたら幸いです。
ご回答ありがとうございます。
ただ、試してみると
exam=# select id,case when point is null then 0
else point end as point
from ex2 where id = 10;
id | point
----+-------
(0 rows)
という具合に空行がかえってきました。なかなか厄介ですよね。
No.1
- 回答日時:
id が UNIQUE なら、
SELECT sum(point) FROM (テーブル名) GROUP BY id WHERE id = ?
でしょうか。
該当 id が無い場合に NULL で無くゼロを返すためにはもうひと捻り必要かも知れません。
この回答への補足
すみません.zxcv0000さんの回答をヒントに試していたら次のような案が見つかりました。幸いidはuniqueなのでこれでやってみようかと思います。
exam=# select coalesce(sum(point),0) as point from ex2 where id = 5;
point
-------
0
(1 row)
お騒がせ致しました.
早速のお返事ありがとうございます.
ただ、ためしてみたら次のようにエラーとなってしまいました.
ちなみにpostgreSQL 8.3 です。
exam=# select sum(point) from ex2 group by id where id = 1;
ERROR: syntax error at or near "where"
LINE 1: select sum(point) from ex2 group by id where id = 1;
簡単そうで難儀な問題ということでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Oracle SQL update方法 2 2022/06/22 14:07
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- MySQL 【MySQL】本当に困っています。詳しい方、ご教授よろしくお願いします。 1 2023/06/03 14:18
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
このQ&Aを見た人はこんなQ&Aも見ています
-
SQLでSUMなどの関数でデータが無い時に0を返したい。
Oracle
-
カーソル0件の時にエラーを発生させる
Oracle
-
SQLサーバに対するSQL文で抽出した時にないレコードを0で表示させるには?
SQL Server
-
-
4
CASE文のエラーについて
Oracle
-
5
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
-
6
ストアドプロシージャ_カーソルのヒット件数
その他(データベース)
-
7
テーブルに存在しない列をselect文で出力する事はできないでしょうか?
PostgreSQL
-
8
select句副問い合わせ 値の個数が多すぎます
Oracle
-
9
単一グループのグループ関数ではありません。
Oracle
-
10
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
11
データがあれば○○なければのSQL
その他(プログラミング・Web制作)
-
12
SELECT 文 GROUP での1件目を取得
SQL Server
-
13
SELECT 文の NULL列は?
PostgreSQL
-
14
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
15
引数によってwhere句を切り替える方法
Oracle
-
16
FROM の中で CASE を使えるでしょうか
SQL Server
-
17
SQLで、Join句で結合したテーブルにデータが無い場合について
SQL Server
-
18
データ無し時は空白行にしたい【SQLITE】
その他(データベース)
-
19
カーソルを使って、最終行レコードの判断はどうすればよいのでしょうか。
SQL Server
-
20
PL/SQLカーソルの2重FORループができません
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルからのselectにおいて...
-
検索スピードの速い方法を教え...
-
postgreSQLのint型は桁数指定が...
-
クエリアナライザのsp_helpコマ...
-
PostgressからMySQL(MariaDB)...
-
Viewにインデックスは張れ...
-
データを削除しても表領域の使...
-
datapumpの実行方法について
-
ORA-00959: 表領域'****'は...
-
CLOB型へのINSERT
-
Data Pump で大量データインポ...
-
object browser で処理を中断す...
-
特定のスキーマのテーブルを一...
-
ACCESS 複数テーブル・複数フィ...
-
INDEXの無効化
-
検索結果の列数を動的に変更したい
-
表領域の使用率がもうすぐ100%
-
SQLでスキーマ名(所有者名)の...
-
同じSELECT文同士でのデ...
-
(ACCESS)複数mdbからのデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルからのselectにおいて...
-
postgreSQLのint型は桁数指定が...
-
UNIQUEをつけたときのINDEXテー...
-
SQL文作成のお願い
-
PostgressからMySQL(MariaDB)...
-
pl/pgsqlで変数の扱い
-
ビット演算結果の取得
-
講座のある日を抽出したい
-
こんばんは。
-
plpgsqlのエスケープ文字について
-
postgreSQLの正規表現
-
SQL SELECT文 別テーブルのレコ...
-
postgreSQLのオートナンバーに...
-
postgreSQL SQL
-
テーブル作成 外部参照 配列
-
Perl DBI でSELECT ilikeの結果...
-
phpPgAdminからSQL文を発行し、...
-
検索スピードの速い方法を教え...
-
チェックボックスから、データ...
-
クエリアナライザのsp_helpコマ...
おすすめ情報