序号从 1 开始
Posted
技术标签:
【中文标题】序号从 1 开始【英文标题】:Serial NO starting from 1 【发布时间】:2016-07-27 06:25:40 【问题描述】:我有一个查询,我想要一列作为SR_No
,应该从 1 开始
以下是我的查询
SELECT
top 2
userName,
Party_name,
Ref_No,
Ref_date,
doc_date,
Last_Action_date,
RAName,
COUNT(Doc_No) AS CountofDocNo,
Document_Type,
RA1_Email
FROM #MainTempTable
GROUP BY RAName,
userName,
Document_Type,
RA1_Email ,Party_name,Ref_No,
Ref_date, doc_date,Last_Action_date
order by RAName
如何从 1 开始它的序列号。
我尝试使用 Row_NUM()
,但它不是从 1 开始的。
更新
我尝试了 Madhivnan 的解决方案,但它不适用于我的第二个查询
SELECT
top 2
row_number() over (order by (select 0)) as SR_No,
UserName,
RAName,
Party_Name,
Ref_No,
Ref_date,
doc_date,
Last_Action_date,
Document_Type,
Doc_No,
No_Of_Days_Doc_Pending,
UserEmail,RA1_Email
FROM #MainTempTable order by UserName
【问题讨论】:
您尝试使用 ROW_NUM() 的代码是什么? @Edward:我尝试过类似1 + ROW_NUMBER() OVER (ORDER BY userName) AS [SR_No]
和order by
中的SR_NO
你为什么要加1呢?由于 ROW_NUMBER()
被定义为从 1 开始对行进行编号,如果您首先尝试将其设置为 1+ROW_NUMBER()
并且您得到从 2 开始的数字,您认为这里没有明显的解决方法吗?
@Damien_The_Unbeliever:是的,我错过了。谢谢提醒
更改(select 0)
以匹配数据的实际顺序。即根据@Edward 的回答将(select 0)
更改为UserName
。然后阅读并了解ROW_NUMBER()
的工作原理
【参考方案1】:
试试这个
SELECT
top 2 row_number() over (order by (select 0)) as SR_No,
userName,
Party_name,
Ref_No,
Ref_date,
doc_date,
Last_Action_date,
RAName,
COUNT(Doc_No) AS CountofDocNo,
Document_Type,
RA1_Email
FROM #MainTempTable
GROUP BY RAName,
userName,
Document_Type,
RA1_Email ,Party_name,Ref_No,
Ref_date, doc_date,Last_Action_date
order by RAName
【讨论】:
这是“请为我的行分配随机数” - 如果您想在这里获得一些确定性,您可以使用基于您的数据和您的要求的表达式,而不是(select 0)
。【参考方案2】:
它应该适用于您的情况:
SELECT
top 2
userName,
Party_name,
Ref_No,
Ref_date,
doc_date,
Last_Action_date,
RAName,
COUNT(Doc_No) AS CountofDocNo,
Document_Type,
RA1_Email,
ROW_NUMBER() OVER(ORDER BY RAName) AS SR_No
FROM #MainTempTable
GROUP BY RAName,
userName,
Document_Type,
RA1_Email ,Party_name,Ref_No,
Ref_date, doc_date,Last_Action_date
【讨论】:
【参考方案3】:这个可以帮到你
select ROW_NUMBER() OVER ( order by field1) as rownumber,field2,field3 from dbo.yourtable
【讨论】:
以上是关于序号从 1 开始的主要内容,如果未能解决你的问题,请参考以下文章
thinkphp里volist输出序号,从2开始该怎么操作。