Sql server 在Where子句中排名
可以在Where子句中使用Rank吗。下面是我打算使用的代码Sql server 在Where子句中排名,sql-server,tsql,Sql Server,Tsql,可以在Where子句中使用Rank吗。下面是我打算使用的代码 Select DebtorID ,Rank () over (partition by DebtorID order by BalanceDate) as RankBalanceDate ,BalanceDate ,Balance ,UnallocatedBalance ,Overdue From Debtorbalances Where Rank () Over (Partition by Debto
Select
DebtorID
,Rank () over (partition by DebtorID order by BalanceDate) as RankBalanceDate
,BalanceDate
,Balance
,UnallocatedBalance
,Overdue
From Debtorbalances
Where Rank () Over (Partition by DebtorID order by BalanceDate) = 1
不,不可能 窗口函数只能出现在SELECT或ORDER BY子句中 您可以使用
CTE
或子查询来执行此操作:
使用CTE
:
with Cte AS(
Select
DebtorID
,rank() over (partition by DebtorID order by BalanceDate) as RankBalanceDate
,BalanceDate
,Balance
,UnallocatedBalance
,Overdue
From Debtorbalances
)
select *
from Cte
where
RankBalanceDate = 1
使用子查询:
select *
from (
select
DebtorID
,rank() over (partition by DebtorID order by BalanceDate) as RankBalanceDate
,BalanceDate
,Balance
,UnallocatedBalance
,Overdue
From Debtorbalances
)t
where
RankBalanceDate = 1