-2

私は、たとえば100行のSQLテーブルを持っています。構造は次のようなものです

colectiveNo    colectiveName         p1Number        P1EffectiveFromDate   morecol
--------------------------------------------------------------------------------------
1                  name1             somenumber         somedate            NULL
1                  name1             somenumber         somedate            1234
1                  name1             somenumber         somedate            5432

、colectiveNo でグループ化します

私はこのような条件を使用したい:

  1. 「morcol」を含むグループの行が null で、同じグループに morcol を含む行がある場合は、null を含む行を表示しない 行 2,3 を表示する

  2. ELSE morecol が null の行しかない場合は、そのグループのそれらを表示します

.

colectiveNo    colectiveName         p1Number        P1EffectiveFromDate   morecol
    ----------------------------------------------------------------------------------
    1                name1           somenumber         somedate            NULL
    1                name1           somenumber         somedate            NULL
    1                name1           somenumber         somedate            NULL

行 1、2、3 を表示

私はそれを行うのが難しくなっています助けてください

4

1 に答える 1

0

ここにあなたができる1つの方法があります.colectiveNoでグループ化していると言ったので、ヌルでいっぱいの2番目の例はcolectiveNoの別のグループであると仮定します

SELECT *
FROM
    (
        SELECT   colectiveNo
                ,colectiveName
                ,p1Number
                ,p1EffectiveFromDate
                ,morecol
                ,CASE WHEN MAX(morecol) OVER (PARTITION BY colectiveNo) IS NULL  THEN 1 ELSE 0 END AS fldIncNulls 
        FROM tbltest
    )data
WHERE (morecol IS NOT NULL OR fldIncNulls = 1)
于 2012-09-21T04:17:14.540 に答える