如何设置列的值等于行不?(how to set column value equal to row

2019-09-18 07:06发布

如何设置改变表等于行没有SQL Server 2008中,这是我想列的值等于没有后已添加的列的值。 排。 我也希望此字段允许空值。 因此,它是像自动递增,但允许这就是为什么不想使用标识或主键列具有自动增量空值。 那么,怎样才能将它设置为排不? 任何帮助将不胜感激。

Answer 1:

如果您尝试更新直接使用ROW_NUMBER列(),你会得到...

窗函数只能出现在SELECT或ORDER BY子句。

...所以不是INNER JOIN表本身...

UPDATE
    [test123]
SET
    [row_number] = [x].[rn]
FROM
    [test123]
INNER JOIN
    (
        SELECT
            [test_id],
            ROW_NUMBER() OVER (ORDER BY [test_id]) AS rn
        FROM
            [test123]
    ) AS x
ON 
    [test123].[test_id] = [x].[test_id]


Answer 2:

这个怎么样:它会更新所需的列行号的值。

select  'Update myTable set row_No = ' + 
CAST(ROW_NUMBER() over (order by ID) as varchar) + ' Where ID = ' +  
cast(ID as varchar) from myTable

--The结果会产生当你运行它会更新所需的列行号的值更新语句。



文章来源: how to set column value equal to row no?