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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
データ無し時は空白行にしたい【SQLITE】
その他(データベース)
-
レコードが選択されないときの、置換ができません
Oracle
-
SQLサーバに対するSQL文で抽出した時にないレコードを0で表示させるには?
SQL Server
-
-
4
GROUP BYを行った後に結合したい。
Oracle
-
5
SQLでSUMなどの関数でデータが無い時に0を返したい。
Oracle
-
6
select文の実行結果に空白行を入れたい
MySQL
-
7
count集計の結果が0の場合でも表示したい
SQL Server
-
8
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
9
SQLで、Join句で結合したテーブルにデータが無い場合について
SQL Server
-
10
データがあれば○○なければのSQL
その他(プログラミング・Web制作)
-
11
FROM の中で CASE を使えるでしょうか
SQL Server
-
12
SQL文で右から1文字だけ削除するやり方
MySQL
-
13
カーソル0件の時にエラーを発生させる
Oracle
-
14
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
-
15
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
16
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
17
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
18
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
19
SELECT 文 GROUP での1件目を取得
SQL Server
-
20
count関数の値をwhere句で使用する方法について
MySQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルからのselectにおいて...
-
postgreSQLのint型は桁数指定が...
-
クエリアナライザのsp_helpコマ...
-
3つのテーブルの処理について
-
Postgresqlの自己結合について
-
PostgresSQL8.4でツリー上に取...
-
PostgressからMySQL(MariaDB)...
-
UNIQUEをつけたときのINDEXテー...
-
SQLで検索結果の記事を表示したい
-
データを削除しても表領域の使...
-
Viewにインデックスは張れ...
-
異なるスキーマからデータを抽...
-
datapumpの実行方法について
-
DELETE文でFROM句を省略した場合
-
SQLでスキーマ名(所有者名)の...
-
Data Pump で大量データインポ...
-
count(1)とcount(*)の違い
-
ACCESS 複数テーブル・複数フィ...
-
特定のスキーマのテーブルを一...
-
ORA-00959: 表領域'****'は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
PostgressからMySQL(MariaDB)...
-
UNIQUEをつけたときのINDEXテー...
-
クエリアナライザのsp_helpコマ...
-
SQL SELECT文 別テーブルのレコ...
-
SQL文作成のお願い
-
3つのテーブルの処理について
-
全テーブルのデータの行数
-
SQLで検索結果の記事を表示したい
-
近い時間によるテーブル結合
-
PostgresSQL8.4でツリー上に取...
-
SELECT結果から重複行を除く方法
-
Perl DBI でSELECT ilikeの結果...
-
2つの異なるテーブルを和結合し...
-
賢いSQL文がわからない
-
チェックボックスから、データ...
-
Viewにインデックスは張れ...
-
データを削除しても表領域の使...
-
異なるスキーマからデータを抽...
おすすめ情報