Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ) * 来自CTE 其中check_row=1 按行号排序 您需要使用子查询或CTE。这是标准的--您不能在中引用列别名,其中与选择的定义位置处于同一级别。在from中使用别名-您能详细说明吗? SELECT TOP (@lastrow - 1) c.t_Sql_Sql Server_Tsql_Row Number - Fatal编程技术网

Sql ) * 来自CTE 其中check_row=1 按行号排序 您需要使用子查询或CTE。这是标准的--您不能在中引用列别名,其中与选择的定义位置处于同一级别。在from中使用别名-您能详细说明吗? SELECT TOP (@lastrow - 1) c.t

Sql ) * 来自CTE 其中check_row=1 按行号排序 您需要使用子查询或CTE。这是标准的--您不能在中引用列别名,其中与选择的定义位置处于同一级别。在from中使用别名-您能详细说明吗? SELECT TOP (@lastrow - 1) c.t,sql,sql-server,tsql,row-number,Sql,Sql Server,Tsql,Row Number,) * 来自CTE 其中check_row=1 按行号排序 您需要使用子查询或CTE。这是标准的--您不能在中引用列别名,其中与选择的定义位置处于同一级别。在from中使用别名-您能详细说明吗? SELECT TOP (@lastrow - 1) c.totalRows ,c.ae_effective_enrollment_id ,c.[user_id] ,c.login_name ,c.first_name ,c

) * 来自CTE 其中check_row=1 按行号排序
您需要使用子查询或CTE。这是标准的--您不能在
中引用列别名,其中
选择
的定义位置处于同一级别。在from中使用别名-您能详细说明吗?
 SELECT TOP (@lastrow - 1) c.totalRows
        ,c.ae_effective_enrollment_id
        ,c.[user_id]
        ,c.login_name
        ,c.first_name
        ,c.last_name
        ,cm.courseware_title
        ,cm.courseware_code
        ,@courseware_id assetId
        ,c.enrollment_status_id
        ,CASE 
            WHEN c.enrollment_status_id = 2
                AND c.is_self_enrolled = 0
                THEN 'Admin-' + s.description
            WHEN c.enrollment_status_id = 2
                AND c.is_self_enrolled = 1
                THEN 'Self-' + s.description
            ELSE s.description
            END AS enrollmentStatus
        ,c.is_group
        ,CASE 
            WHEN c.is_self_enrolled = 0
                THEN 1
            ELSE 0
            END is_admin
        ,CASE 
            WHEN c.auma_is_assigned = 1
                THEN 'Admin-assigned'
            WHEN c.auma_is_assigned = 0
                THEN 'Self-assigned'
            ELSE 'No-My-Plan'
            END AS myplanStatus
        , master_assignment_id
        ,ROW_NUMBER() over(partition by cm.courseware_id,c.user_id order by c.is_self_enrolled)as check_row
    FROM enrollmentCTE c
    INNER JOIN dbo.courseware_master cm ON cm.courseware_id = @courseware_id
    LEFT JOIN @statuscodes s ON s.id = c.enrollment_status_id
    WHERE check_row=1 and 
    enrollment_status_id<>4 and
    rownumber > @firstrow
        AND rownumber < @lastrow
    ORDER BY rownumber 
SELECT totalRows, ae_effective_enrollment_id, user_id, login_name, first_name, last_name, check_row FROM 
(SELECT TOP (@lastrow - 1) c.totalRows as totalRows 
        ,c.ae_effective_enrollment_id as ae_effective_enrollment_id
        ,c.[user_id] as user_id
        ,c.login_name as login_name
        ,c.first_name as first_name
        ,c.last_name as last_name
        ,cm.courseware_title as courseware_title
        ,cm.courseware_code as courseware_code
        ,@courseware_id as assetId
        ,c.enrollment_status_id as enrollment_status_id
        ,CASE 
            WHEN c.enrollment_status_id = 2
                AND c.is_self_enrolled = 0
                THEN 'Admin-' + s.description
            WHEN c.enrollment_status_id = 2
                AND c.is_self_enrolled = 1
                THEN 'Self-' + s.description
            ELSE s.description
            END AS enrollmentStatus
        ,c.is_group
        ,CASE 
            WHEN c.is_self_enrolled = 0
                THEN 1
            ELSE 0
            END is_admin
        ,CASE 
            WHEN c.auma_is_assigned = 1
                THEN 'Admin-assigned'
            WHEN c.auma_is_assigned = 0
                THEN 'Self-assigned'
            ELSE 'No-My-Plan'
            END AS myplanStatus
        , master_assignment_id
        ,ROW_NUMBER() over(partition by cm.courseware_id,c.user_id order by c.is_self_enrolled)as check_row
    FROM enrollmentCTE c
    INNER JOIN dbo.courseware_master cm ON cm.courseware_id = @courseware_id
    LEFT JOIN @statuscodes s ON s.id = c.enrollment_status_id
    WHERE enrollment_status_id<>4 and
    rownumber > @firstrow
        AND rownumber < @lastrow
    ORDER BY rownumber ) t where check_row = 1
ROW_NUMBER() over(...
USE AdventureWorks2012;
GO
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS RowNumber
    FROM Sales.SalesOrderHeader 
) 
SELECT SalesOrderID, OrderDate, RowNumber  
FROM OrderedOrders 
WHERE RowNumber BETWEEN 50 AND 60;
;WITH CTE AS(
    SELECT  c.totalRows
            ,c.ae_effective_enrollment_id
            ,c.[user_id]
            ,c.login_name
            ,c.first_name
            ,c.last_name
            ,cm.courseware_title
            ,cm.courseware_code
            ,@courseware_id assetId
            ,c.enrollment_status_id
            ,CASE 
                WHEN c.enrollment_status_id = 2
                    AND c.is_self_enrolled = 0
                    THEN 'Admin-' + s.description
                WHEN c.enrollment_status_id = 2
                    AND c.is_self_enrolled = 1
                    THEN 'Self-' + s.description
                ELSE s.description
                END AS enrollmentStatus
            ,c.is_group
            ,CASE 
                WHEN c.is_self_enrolled = 0
                    THEN 1
                ELSE 0
                END is_admin
            ,CASE 
                WHEN c.auma_is_assigned = 1
                    THEN 'Admin-assigned'
                WHEN c.auma_is_assigned = 0
                    THEN 'Self-assigned'
                ELSE 'No-My-Plan'
                END AS myplanStatus
            , master_assignment_id
            ,ROW_NUMBER() over(partition by cm.courseware_id,c.user_id order by c.is_self_enrolled) as check_row
    FROM enrollmentCTE c
    INNER JOIN dbo.courseware_master cm ON cm.courseware_id = @courseware_id
    LEFT JOIN @statuscodes s ON s.id = c.enrollment_status_id
    WHERE enrollment_status_id<>4
    AND rownumber > @firstrow
    AND rownumber < @lastrow
)
SELECT TOP (@lastrow - 1) *
FROM CTE
WHERE check_row = 1
ORDER BY rownumber