Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Lead- und Lag-Funktionen aus C#-Code

Sehen Sie sich das MoreLinq-Projekt an (auf Github):http://morelinq.github.io

Dort sind Lead und Lag als Erweiterungen implementiert:

public static IEnumerable<TResult> Lag<TSource, TResult>(
    this IEnumerable<TSource> source,
    int offset,
    TSource defaultLagValue,
    Func<TSource, TSource, TResult> resultSelector
)

Referenz:https://morelinq.github.io/2.0/ref /api/html/M_MoreLinq_MoreEnumerable_Lag__2_1.htm

BEARBEITEN:Dies ist nur Linq to Objects. Wenn es also auf eine SQL-Datenquelle angewendet wird, würde es alle Zeilen abrufen und dann die Berechnung außerhalb der Datenbank durchführen. Das ist nicht das, was das OP erwartet.

Forschungsergebnisse sagen „nein , es ist nicht möglich" für die Punkte 1,2,3 und 4: