
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
-
SQLサーバに対するSQL文で抽出した時にないレコードを0で表示させるには?
SQL Server
-
CASE文のエラーについて
Oracle
-
-
4
カーソル0件の時にエラーを発生させる
Oracle
-
5
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
-
6
テーブルに存在しない列をselect文で出力する事はできないでしょうか?
PostgreSQL
-
7
データがあれば○○なければのSQL
その他(プログラミング・Web制作)
-
8
SELECT 文の NULL列は?
PostgreSQL
-
9
レコードが選択されないときの、置換ができません
Oracle
-
10
SELECT 文 GROUP での1件目を取得
SQL Server
-
11
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
12
FROM の中で CASE を使えるでしょうか
SQL Server
-
13
単一グループのグループ関数ではありません。
Oracle
-
14
特定条件でWHERE句の条件を変更したい
SQL Server
-
15
PL/SQLカーソルの2重FORループができません
Oracle
-
16
count集計の結果が0の場合でも表示したい
SQL Server
-
17
引数によってwhere句を切り替える方法
Oracle
-
18
SELECTの結果で同一行を複数回出力する
Oracle
-
19
SQLで、Join句で結合したテーブルにデータが無い場合について
SQL Server
-
20
未、済、完了の英訳は?
英語
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
UNIQUEをつけたときのINDEXテー...
-
PostgressからMySQL(MariaDB)...
-
クエリアナライザのsp_helpコマ...
-
SQLで検索結果の記事を表示したい
-
Viewにインデックスは張れ...
-
データを削除しても表領域の使...
-
ORA-00959: 表領域'****'は...
-
SQL*Loaderで、データを加工し...
-
ACCESS 複数テーブル・複数フィ...
-
CLOB型へのINSERT
-
Data Pump で大量データインポ...
-
datapumpの実行方法について
-
異なるスキーマからデータを抽...
-
oracleのプライマリ・キー名の変更
-
SQLでスキーマ名(所有者名)の...
-
(ACCESS)複数mdbからのデータ...
-
ExcelをAccessにペーストエラー
-
DELETE文でFROM句を省略した場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルからのselectにおいて...
-
postgreSQLのint型は桁数指定が...
-
クエリアナライザのsp_helpコマ...
-
UNIQUEをつけたときのINDEXテー...
-
PostgressからMySQL(MariaDB)...
-
PostgresSQL8.4でツリー上に取...
-
SQL SELECT文 別テーブルのレコ...
-
SQL文作成のお願い
-
Postgresqlの自己結合について
-
チェックボックスから、データ...
-
Oracle でのデータベースサイズ...
-
ビット演算結果の取得
-
Perl DBI でSELECT ilikeの結果...
-
検索スピードの速い方法を教え...
-
ベスト3の抽出方法
-
もうちょっと賢いSELECT文が書...
-
こんばんは。
-
テーブル作成 外部参照 配列
-
自動で生成されるユニークID
-
plpgsqlのエスケープ文字について
おすすめ情報