- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLの書き方)
SQLの書き方 | 結果Aと結果Bの違いとは?
このQ&Aのポイント
- 得意先マスタと製品マスタを得意先コードで等価結合した場合、結果Aのようになります。
- しかし、結果Bのような結果を得たい場合は、どのようにSQLを書けばいいのでしょうか?
- IBM DB2 V7およびPostgreSQL 8.4における書き方も教えてください。
- みんなの回答 (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
その他の回答 (1)
- sukeken
- ベストアンサー率21% (1454/6647)
回答No.1
こんにちは。 同じ会社名であれば、2行目以降非表示なり省略なりしたいと言うことでしょうか? SQL文でそれを行うのは、おそらく無理だと思います。 画面表示の際なり、帳票印刷の際なり、その部分を加工してあげる必要があるのではないかと。 とか言いながら、過去の知識しか持ち合わせてないので、今はできるのかも知れませんけど。