Sql 选择不同的、顶部的、按顺序的
我需要使用不同的Sql 选择不同的、顶部的、按顺序的,sql,sql-server,database,Sql,Sql Server,Database,我需要使用不同的biaccounted值获取前N行,以避免重复。我试图创建一个子查询,但SQL Aerver告诉我,ORDER BY子句不能在子查询中 这是我到目前为止提出的问题 SELECT u.*, c.vcAccountID,t.tiAccountTypeID FROM dbo.tbUserReviewAccount u inner join tbCustAccount c on c.biAccountID=u.biAccountId inner join tbAccountType t
biaccounted
值获取前N行,以避免重复。我试图创建一个子查询,但SQL Aerver告诉我,ORDER BY
子句不能在子查询中
这是我到目前为止提出的问题
SELECT u.*, c.vcAccountID,t.tiAccountTypeID
FROM dbo.tbUserReviewAccount u
inner join tbCustAccount c on c.biAccountID=u.biAccountId
inner join tbAccountType t on t.tiAccountTypeID=c.tiAccountTypeID
where u.iUserId=1
order by u.dtReviewedOn desc
这是我得到的结果,我需要向下筛选,以获得与用户审核的最新帐户标准匹配的前N行,审核日期在列dtReviewedOn
,但我需要获得前N行
如果N=5(N=顶行),我试图得到的只是第1、4、5、6、7行 这通常使用
行编号()进行处理。
:
这通常会使用
行编号()进行处理:
仍然需要限制为5行。只需在SELECT
子句之后添加TOP 5
,就可以了。仍然需要限制为5行。只需在SELECT
子句之后添加TOP 5
,就可以了。
select top (5) u.*
from (select u.*, c.vcAccountID, t.tiAccountTypeID,
row_number() over (partition by u.biAccountId order by u.dtReviewdOn desc
from dbo.tbUserReviewAccount u inner join
tbCustAccount c
on c.biAccountID = u.biAccountId join
tbAccountType t on t.tiAccountTypeID=c.tiAccountTypeID
where u.iUserId = 1
) u
where seqnum = 1
order by u.dtReviewedOn desc;