Schwierigkeiten beim Schreiben von Stored Proc, um Daten für die Jqgrid-Paginierung abzurufen

Ich verwende die folgende SQL-Prozedur, um Daten für die Paginierung in JqGrid in meiner Webanwendung abzurufen.

ALTER PROCEDURE [dbo].[NewStoredProc] 
(
    @skip int,
    @pageSize int,
    @OrderBy Varchar(20),
    @OrderByDirection Varchar(10)
 )

AS
BEGIN
    DECLARE @records int;
    SET NOCOUNT ON;
    SET @records =(select count(*) from Data where Status='A');

    IF @skip <= 0
        SELECT TOP (@pageSize) * from Data where Status='A' 
        ORDER BY CASE WHEN @OrderBy='Column1' AND @OrderByDirection='D' THEN Column1 END DESC ,CASE WHEN @OrderBy='Column1' AND @OrderByDirection !='D'THEN Column1 END,
                 CASE WHEN @OrderBy='Column2' AND   @OrderByDirection='D' THEN Column2 END DESC ,CASE WHEN @OrderBy='Column2' AND @OrderByDirection !='D'THEN Column2 END,
                 CASE WHEN @OrderBy='Column3' AND   @OrderByDirection='D' THEN Column3 END DESC ,CASE WHEN @OrderBy='Column3' AND @OrderByDirection !='D'THEN Column3 END

    ELSE
        WITH GetAll AS (
           SELECT  * from Data where Status='A')
        ,GetFirst AS (
            SELECT TOP (@skip) *
            FROM GetAll
        ),GetNext AS (
            SELECT TOP (@pageSize) nt.*
            FROM GetAll AS nt
                LEFT OUTER JOIN GetFirst AS f ON f.Col1=nt.Col1
            WHERE f.Col1 IS  NULL)

        SELECT * FROM GetNext;
    RETURN @records;
END

Hier ist das Problem, dass ich nicht verwenden kannOrderBy in WITH-Klausel. Aber ich brauche die Datensätze erst nach dem Sortieren zu bekommen. Gibt es eine Möglichkeit, wie wir das tun können?

Einfach zu sagen .. wie man die Bestellung durch für umsetztGetAll Daten

Antworten auf die Frage(1)

Ihre Antwort auf die Frage