• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLの書き方)

SQLの書き方 | 結果Aと結果Bの違いとは?

このQ&Aのポイント
  • 得意先マスタと製品マスタを得意先コードで等価結合した場合、結果Aのようになります。
  • しかし、結果Bのような結果を得たい場合は、どのようにSQLを書けばいいのでしょうか?
  • IBM DB2 V7およびPostgreSQL 8.4における書き方も教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • gacky-79
  • ベストアンサー率100% (14/14)
回答No.2

ウィンドウ関数の lag() を使えばお望みの結果が得られます。 -- tblは得意先マスタと製品マスタの結合結果として SELECT CASE 列1 WHEN lag(列1, 1) OVER (ORDER BY 列1, 列2) THEN NULL ELSE 列1 END, 列2, 列3 FROM tbl; 列1 | 列2 | 列3 -----+--------+----- A社 | A製品1 | A@1 | A製品2 | A@2 | A製品3 | A@3 B社 | B製品1 | B@1 | B製品2 | B@2 | B製品3 | B@3

参考URL:
http://www.postgresql.jp/document/current/html/functions-window.html

その他の回答 (1)

  • sukeken
  • ベストアンサー率21% (1454/6647)
回答No.1

こんにちは。 同じ会社名であれば、2行目以降非表示なり省略なりしたいと言うことでしょうか? SQL文でそれを行うのは、おそらく無理だと思います。 画面表示の際なり、帳票印刷の際なり、その部分を加工してあげる必要があるのではないかと。 とか言いながら、過去の知識しか持ち合わせてないので、今はできるのかも知れませんけど。

関連するQ&A