Die SQL Benutzerdefinierte Paging Abfrage für Object, erlaubt jede Anfrage nur Daten für die betreffende Seite zu liefern, die Erhöhung Ladegeschwindigkeit.SQL Query für optionale kundenspezifische Paging, C# Object
Die Frage ist wie man Paging optional macht?
string Query = @"
DECLARE @PagedData int
SET @PagedData = 1
SELECT
CASE
WHEN @PagedData = 1
THEN (SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY " + _sortColumns + @") AS ResultRank, *
FROM dbTable
WHERE (FeatureString LIKE '%gold%')
AS ProductsWithRowNumber WHERE ResultRank >
" + startIndex + " AND ResultRank <= (" + startIndex + " + " + pageSize + @"))
ELSE (SELECT * FROM dbTable WHERE (FeatureString LIKE '%gold%'))
END";
Das Ziel ist, für die SQL-Funktion der Lage sein, Daten für diese bestimmte Seite nur zu bekommen, oder es kann Paging schalten Sie alle bekommen die relevanten Daten.
Oben ist mein Versuch, einen CASE zu verwenden, um zu wechseln, ob die Abfrage basierend auf dem Wert der Variablen PagedData ausgelagert wird. Diese Methode endet jedoch fehlerhaft.
Bitte lassen Sie mich wissen, wenn Sie mich brauchen, um etwas zu klären, danke.
was bedeutet ‚versagt‘? irgendeine Fehlermeldung? – McNets
Fehler: "Nur ein Ausdruck kann in der Auswahlliste angegeben werden, wenn die Unterabfrage nicht mit EXISTS eingeführt wird." –
und können Sie den letzten Satz, vielleicht einen Haltepunkt, oder in einer Textdatei oder einem Meldungsfeld speichern? – McNets