簡體   English   中英

使用WITH和over分區難度更新表

[英]Update table with a WITH and over partition diffuculty

我正在嘗試在表中添加一列重復的線性數字,這些線性數字在287處停止並重復。 該代碼的工作方式是更新表,但所有行均為零,而不是我想要的數字。 With子句起作用,因為我可以看到它在與select一起使用時起作用,因為更新已完成。

WITH myupdate (myrownumber) 
 AS (SELECT ( Row_number() 
                OVER ( 
                  partition BY tmc, date 
                  ORDER BY tmc, date, epoch) - 1 ) AS myRowNumber 
     FROM   [dbo].[i40_2016_all]) 
--SELECT * FROM myUpdate 
UPDATE [dbo].[i40_2016_all] 
SET    mod_epoch = myrownumber 
FROM   myupdate 

我的猜測是您正在使用SQL Server。 我認為您想要的語法如下所示:

WITH myUpdate AS (
      SELECT a.*,
             ROW_NUMBER() over (PARTITION BY TMC, DATE ORDER BY TMC, DATE, EPOCH) - 1 AS myRowNumber
      FROM [dbo].[I40_2016_ALL] a
     )
UPDATE myUpdate
    SET MOD_EPOCH = myRowNumber;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM