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
C# 如何创建一个ROWNUMBER列,该列始终保持一列从1到N的序列号。列的计数_C#_Sql Server_Ado.net - Fatal编程技术网

C# 如何创建一个ROWNUMBER列,该列始终保持一列从1到N的序列号。列的计数

C# 如何创建一个ROWNUMBER列,该列始终保持一列从1到N的序列号。列的计数,c#,sql-server,ado.net,C#,Sql Server,Ado.net,在SQL Server中,我试图创建一列序列号来帮助我编写代码。我不知道如何创建一个总是由一组从1开始的连续数字填充的列 1 2 3 N SqlCommand command = new SqlCommand("SELECT *, ROW_NUMBER() OVER(ORDER BY Id) AS RowRankNumber FROM Statements WHERE RowRankNumber >= "+1+" AND RowRankNumber <= "+4+"", con);

在SQL Server中,我试图创建一列序列号来帮助我编写代码。我不知道如何创建一个总是由一组从1开始的连续数字填充的列

1
2
3
N

SqlCommand command = new SqlCommand("SELECT *, ROW_NUMBER() OVER(ORDER BY Id) AS RowRankNumber FROM Statements WHERE RowRankNumber >= "+1+" AND RowRankNumber <= "+4+"", con);

您需要使用内部查询来获得结果。在查询中,不能在where子句中使用行号。比如说

SELECT * FROM (
SELECT  ROW_NUMBER() OVER(ORDER BY Id) AS RowRankNumber,* FROM Statements 
) x WHERE RowRankNumber >=1  AND RowRankNumber <=4

排号有什么问题?您可以使用标识或序列在插入点创建一个始终升序的值,但是,由于插入失败、删除行等原因,这两个值都可能存在间隙。在Sql Server中,我只是希望强制列始终以升序排列,而不存在任何间隙。因此,当删除一行时,您将看不到4、6。您将看到4,5。。我会研究你提到的内容,所以,我重复一遍,行号有什么问题吗?你能在查询中定义行号而不在列中初始化它吗。我只是意识到。所以我可以说>=rownumber,当我的列被填充时,我的查询可以正常工作,但当它没有填充时,它就不工作了。这是意料之中的。你是说在sql server中创建一个row_column类型的列,如果是这样的话,我将不得不查找它,因为我还没有找到它的语法。谢谢,我将尝试一下