2016-04-22 20 views
0

Das folgende ist das Ergebnis einer Abfrage auf einer einzigen Tabelle:Die Kombination von zwei Reihen

ID ColumnA ColumnB ColumnC 1 -1 300 400 2 200 300 0 Was wäre die Abfrage aussehen, wenn ich das Ergebnis wie folgt aus wollen:

ColumnA ColumnB ColumnC 200 300 400 Grundsätzlich mit ColumnB als Referenz und ersetzen -1 und 0 mit ihren entsprechenden Nicht-Null-Gegenstücke unter ColumnA und ColumnC (Abflachung?).

Einige givens:

  • immer zwei Reihen
  • immer -1 für ColumnA und 0 für ColumnC

Dies ist etwas, das ich mit keine Erfahrung haben, so bitte ich-SO Hilfe. Vielen Dank.

+1

' wähle max (columna), max (columnb), max (columnc) aus der Tabelle? –

Antwort

1

alle CLM1, CLM2, cLM3 alle sind, müssen Datentyp int sein, rea, schweben dann wenden Sie es

select Top(1) max(clm1), max(clm2), max(clm3) from tbl group by clm1,clm2,clm3 

andere dies versuchen,

select max(clm1), max(clm2), max(clm3) from tbl 

versuchen, diese

1
select * 
from 
(select ID ColumnA, ColumnB, ColumnC, 
     , lead (ColumnA, 1, 'default') over (order over ID) as ColumnAlead 
    from table 
) tt 
where tt.ColumnC <> 0 
Verwandte Themen