Raf*_*per 3 sql t-sql sql-server sql-server-2012
Rowss
在WHERE
条款中使用name我该怎么办?
SELECT TOP 10
ROW_NUMBER() OVER(ORDER BY dp.IdPytanie) AS Rowss,
dp.IdPytanie
,dp.SpecjalnePytanie
FROM dodajtemat_pytanie dp
WHERE
(@RowBegining = 0 OR convert(int,Rowss) >= @RowBegining)
AND (@RowEnd = 0 OR Rowss <= @RowEnd)
Run Code Online (Sandbox Code Playgroud)
错误
这项工作 - >
@RowEnd = 0 OR ROW_NUMBER() OVER(ORDER BY dp.IdPytanie) <= @RowEnd
Run Code Online (Sandbox Code Playgroud)
使用子查询或CTE如下:
WITH CTE
AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY dp.IdPytanie) AS Rowss,
dp.IdPytanie,
dp.SpecjalnePytanie
FROM dodajtemat_pytanie dp
)
SELECT *
FROM CTE
WHERE (@RowBegining = 0 OR Rowss >= @RowBegining)
AND (@RowEnd = 0 OR Rowss <= @RowEnd);
Run Code Online (Sandbox Code Playgroud)
该WHERE
语句在语句之前进行逻辑评估SELECT
,因此它无法识别新创建的别名Rowss
.
有关SQL Server中逻辑查询处理步骤的详细信息,请参阅:
归档时间: |
|
查看次数: |
848 次 |
最近记录: |