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も見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
SQLサーバに対するSQL文で抽出した時にないレコードを0で表示させるには?
SQL Server
-
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
データ無し時は空白行にしたい【SQLITE】
その他(データベース)
-
-
4
CloseとDisposeの違い
Visual Basic(VBA)
-
5
カーソル0件の時にエラーを発生させる
Oracle
-
6
SQLでSUMなどの関数でデータが無い時に0を返したい。
Oracle
-
7
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
8
レコードが選択されないときの、置換ができません
Oracle
-
9
SQLで列名を変数にできないでしょうか
SQL Server
-
10
Access クエリの結果が0件だった場合、エラーを表示させる方法
Access(アクセス)
-
11
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
12
CASE文のエラーについて
Oracle
-
13
データがあれば○○なければのSQL
その他(プログラミング・Web制作)
-
14
件数とデータを同時に取得するには?
Oracle
-
15
Statement ignored というエラー
Oracle
-
16
Integer変数をカラにしたいのですが
Visual Basic(VBA)
-
17
SELECT 文の NULL列は?
PostgreSQL
-
18
Excelで"で囲む方法
Excel(エクセル)
-
19
変数が選択リストにありません
Oracle
-
20
DataGridViewで指定したセルの値を取得
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
SQL SELECT文 別テーブルのレコ...
-
Viewにインデックスは張れ...
-
データを削除しても表領域の使...
-
Data Pump で大量データインポ...
-
ORA-00959: 表領域'****'は...
-
Access レコードを追加できませ...
-
SQL*LoaderとInsertの違いについて
-
datapumpの実行方法について
-
異なるスキーマからデータを抽...
-
ACCESS 複数テーブル・複数フィ...
-
アナライズとインデックス作成...
-
特定のスキーマのテーブルを一...
-
RDBのテーブル種類の違い
-
CLOB型へのINSERT
-
同じSELECT文同士でのデ...
-
DELETE文でFROM句を省略した場合
-
INDEXの無効化
-
カラムの存在チェック
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgreSQLのint型は桁数指定が...
-
テーブルからのselectにおいて...
-
UNIQUEをつけたときのINDEXテー...
-
クエリアナライザのsp_helpコマ...
-
3つのテーブルの処理について
-
PostgressからMySQL(MariaDB)...
-
SQL文作成のお願い
-
SQL SELECT文 別テーブルのレコ...
-
全テーブルのデータの行数
-
PostgresSQL8.4でツリー上に取...
-
前方一致が動的に変更される場...
-
2つの異なるテーブルを和結合し...
-
もうちょっと賢いSELECT文が書...
-
次の条件を満たすSQL文をご...
-
マルチテーブル・インサート
-
SQLで同じフィールドを2つ取り...
-
チェックボックスから、データ...
-
近い時間によるテーブル結合
-
Perl DBI でSELECT ilikeの結果...
-
Viewにインデックスは張れ...
おすすめ情報