1

Ich habe eine Ergebnismenge von vielen Zeilen und ich möchte einen Case-Ausdruck für den Vergleich jeder zweiten Zeile in meinem Ergebnis schreiben, ohne die Zeilennummer hart zu codieren.Fall für jede zweite Zeile in einer Ergebnismenge SQL Server 2008

Jede zweite Reihe in meinem Ergebnis ist miteinander verbunden.

Beispiel:

1 Number1: 2345 Number2: 1111

2 Number1: 3456 Number2: 2222

3 Number1: 4567 Number3: 3333

4 Number1: 5678 Nummer4: 4444

Möchten Sie Zeile 1 und 2/3 und 4 und so weiter vergleichen ..

Irgendwelche Vorschläge? Ich bin mit SQL Developer 2008

+0

Blick in die LEAD/LAG Funktionen – HoneyBadger

+1

Bearbeiten Sie Ihre Frage und Beispieldaten liefern und gewünschten Erfolge. –

+0

LEAD/LAG ist in SQL 2008 nicht verfügbar –

Antwort

0

Einsatz gleichen Daten an zwei diffrent #table und vergleichen mit while-Schleife, wie unten,

DECLARE @min INT =1, 
        @max INT ,@Table1_number1 INT,@Table1_number2 INT,@Table2_number1 INT,@Table2_number2 INT 
CREATE TABLE #Table1(ID INT IDENTITY(1,1), 
          number1 INT,number2 INT) 
CREATE TABLE #Table2(ID INT IDENTITY(1,1), 
          number1 INT,number2 INT) 
INSERT INTO #Table1(number1, 
        number2) 
VALUES(1, 
     1), (1, 
      1), (2, 
       2) 
INSERT INTO #Table2(number1, 
        number2) 
VALUES(1, 
     1), (1, 
      1), (2, 
       2) 
SELECT @max= 
    (SELECT count(1) 
    FROM #Table1) WHILE(@min<[email protected]) BEGIN 
SELECT @Table1_number1=number1, 
     @Table1_number2=number2 
FROM #Table1 
WHERE [email protected] IF(@[email protected]) BEGIN 
    SELECT @Table2_number1=number1, 
     @Table2_number2=number2 
    FROM #Table2 
    WHERE ID=1 END ELSE BEGIN 
    SELECT @Table2_number1=number1, 
     @Table2_number2=number2 
    FROM #Table2 
    WHERE [email protected]+1 END 

    IF(@[email protected]_number1 
    AND @[email protected]_number2) BEGIN PRINT 'do something' END ELSE BEGIN PRINT '-- do something else' END 
    SET @[email protected]+1 END 
    DROP TABLE #Table1 
    DROP TABLE #Table2 
Verwandte Themen