我有一个查询,我需要找到查询返回答案的行号。 我没有专柜。我该怎么做?
提前致谢。
答案 0 :(得分:2)
SELECT
ROW_NUMBER() OVER (<your_id_field_here> ORDER BY <field_here>) as RowNum,
<the_rest_of_your_fields_here>
FROM
<my_table>
答案 1 :(得分:0)
如果您有主键,则可以在SQL Server 2005及更高版本上使用此方法:
SELECT
ROW_NUMBER() OVER (ORDER BY PrimaryKeyField) as RowNumber,
Field1,
Field2
FROM
YourSourceTable
如果您没有主键,您可能需要做的是使用如下方法将表复制到mermory表(或临时表(如果它非常大)):
DECLARE @NewTable table (
RowNumber BIGINT IDENTITY(1,1) PRIMARY KEY,
Field1 varchar(50),
Field2 varchar(50),
)
INSERT INTO @NewTable
(Field1, Field2)
SELECT
Field1,
Field2
FROM
YourSourceTable
SELECT
RowNumber,
Field1,
Field2
FROM
@NewTable
关于这一点的好处是,如果源表没有主键,您将能够检测到相同的行。
此外,此时,如果他们还没有主表,我建议您为每张表添加一个主键。
答案 2 :(得分:0)
创建表t1(N1 int,N2 int)
插入t1 选择200,300
插入t1 选择200,300
插入t1 选择300,400
插入t1 选择400,400 ..... ......
选择row_number()over(按[N1]排序)RowNumber,* from t1
答案 3 :(得分:0)
我有一个查询,我需要找到 查询返回的行号 回答。我没有任何反击 领域。我是怎么做到的?
如果我正确理解了您的问题,那么您会有某种查询返回一行或几行(答案,答案),并且您希望将行号与“答案”相关联
正如你所说,你没有任何反作用领域所以你需要的是以下内容:
如果您为问题提供了更多详细信息,那将会非常有帮助。 如果您确认我正确理解了您的问题,我将添加一个代码示例