-1

Select コマンドの結果セットは次のとおりです。

1 Null Null Null
1 1    Null Null
1 1    Null 1
1 1    1    Null

しかし、次のように並べ替える必要があります。

1 Null Null Null
1 1    Null Null
1 1    1    Null
1 1    Null 1

どうやってやるの?

SELECT ステートメント:

 select K,
        Null As M,
        Null As T1,
        Null As T2,
        SUM(debit) SumDebit 
   from h 
        join i On h.HdrId = i.HdrIdRef 
        Group by K 

           Union 

 select K,
        M,
        Null As T1,
        Null As T2,
        SUM(debit) SumDebit 
    from h 
         join i On h.HdrId = i.HdrIdRef 
         Group by K,M 

             Union 
 Select * 
   From
       ( select K,
                M,
                T1,
                Null As T2,
                SUM(debit) SumDebit 
           from h 
                join i On h.HdrId = i.HdrIdRef 
                Group by K,M,T1
      ) A 
  Where A.T1 Is Not Null 

              Union 

 Select * 
  From
     ( select K,
              M,
              T1,
              T2,
              SUM(debit) SumDebit 
          from h 
               join i On h.HdrId = i.HdrIdRef 
               Group by K,M,T1,T2
     ) A 
 Where A.T2 Is Not Null 
       Order By K, M, T1, T2 
4

1 に答える 1

1
SELECT *
FROM table
ORDER BY ISNULL(Col4, 0), ISNULL(Col3, 0), ISNULL(Col2, 0), ISNULL(Col1, 0)

出力に基づいて、並べ替えを右端の列から開始することを想定しています

于 2013-07-20T05:00:13.577 に答える