SQLで前の行と同じ値は表示しないようにする

SQLで前の行と同じ値は表示しないようにするして伝票印刷のような処理に対応します。

スポンサーリンク

前の行と同じ値は表示しない

SQLで前の行と同じ値は表示しないようにするして伝票印刷のような処理に対応します。

1.テーブルの準備

データを保存するためにテーブルを準備します。

create table テーブル1
(
     keys varchar(20)
    ,no01 varchar(20)
    ,name varchar(20)
)

2.データの挿入

検索対象のデータを挿入します。

insert into テーブル1 values ( '1', '1', 'lightgauge_01' )
insert into テーブル1 values ( '2', '2', 'lightgauge_02' )
insert into テーブル1 values ( '3', '2', 'lightgauge_03' )
insert into テーブル1 values ( '4', '2', 'lightgauge_04' )
insert into テーブル1 values ( '5', '3', 'lightgauge_05' )
insert into テーブル1 values ( '6', '3', 'lightgauge_06' )

3.問い合わせ

実際に問い合わせを行ってみます。

SELECT
     keys
    ,no01
    ,name
 FROM (
         SELECT DISTINCT
             keys
             ,no01
             ,name
         FROM
             テーブル1
         WHERE
             name Not In (
                          SELECT DISTINCT
                              A.name
                          FROM
                               テーブル1 AS A
                               INNER JOIN テーブル1 AS B ON
                                A.no01 = B.no01 AND A.keys>B.keys
                         )
         UNION ALL
         SELECT DISTINCT
              keys
             ,'' AS no01
             ,name
         FROM
             テーブル1
         WHERE
             name In (
                          SELECT DISTINCT
                              A.name
                          FROM
                              テーブル1 AS A
                              INNER JOIN テーブル1 AS B ON
                               A.no01 = B.no01 AND A.keys>B.keys)
) AS dsp_table ORDER BY keys

4.作成したテーブルを削除

作成したテーブルを削除します。

DROP TABLE テーブル1

5.実行結果

実行結果です。

keys  no01  name
  1    1    lightgauge_01
  2    2    lightgauge_02
  3         lightgauge_03
  4         lightgauge_04
  5    3    lightgauge_05
  6         lightgauge_06

no01の値が1行前と同じ値の場合は表示されていません。

タイトルとURLをコピーしました