我有列数据。我需要在另一列中插入ids。总计我有7个ID。对于前7个值,我必须插入这些ID和接下来的7个值,我必须插入相同的ID等..可以帮助任何人吗?如何在列中插入七种ID到所有值
Pay_headID Pay_amount
16414 8000
16415 300
16416 0
16417 200
16418 500
16419 0
16420 0
16414 9000
16415 300
so on ...
我有列数据。我需要在另一列中插入ids。总计我有7个ID。对于前7个值,我必须插入这些ID和接下来的7个值,我必须插入相同的ID等..可以帮助任何人吗?如何在列中插入七种ID到所有值
Pay_headID Pay_amount
16414 8000
16415 300
16416 0
16417 200
16418 500
16419 0
16420 0
16414 9000
16415 300
so on ...
可以使用CTE和ROW_NUMBER,我已经使用顺序由Pay_headId:
WITH cte_myTable
AS (SELECT
*,
(ROW_NUMBER() OVER (ORDER BY Pay_headID)) - 1 AS num
FROM myTable)
UPDATE cte_myTable
SET [Pay_headID] =
CASE
WHEN num % 7 = 0 THEN 16414
WHEN num % 7 = 1 THEN 16415
WHEN num % 7 = 2 THEN 16416
WHEN num % 7 = 3 THEN 16417
WHEN num % 7 = 4 THEN 16418
WHEN num % 7 = 5 THEN 16419
WHEN num % 7 = 6 THEN 16420
END
GO
如果你想使用它是如何插入,你可以设置Pay_headIds为null排序:
update myTable set Pay_headID=null;
我在一列中有206192个值。我需要维护一个单独的列中的id。我总共有7个Ids。对于前7个值需要维护这些ID,接下来的7个值需要保持相同的ID,并且接下来的7个值需要保持相同的7个ID。总共206192我需要重复维护相同的ID。 –
在这种情况下,您希望使用哪种排序来理解哪些记录器在第一组中,哪些记录应该在第二组中? –
记录是按顺序排列的。对于前7个值需要给出7个ID,接下来7个值需要给出相同的ID。 –
你应该使用RowNum()给你一个人工递增数字,除以7然后舍入它。
SELECT FLOOR((ROW_NUMBER() OVER(ORDER BY Pay_HeadID DESC))/7) AS MyID
让你的IDS
嗨,你能解释一下吗?谢谢 –
ROW_NUMBER为您提供每个记录的计数器。然后,当你将它除以7并使用FLOOR时,它每7个记录只给出一个新的数字。这是我以为你想要的。我不知道你是否想把它们插回到桌子上,或者说,我会把它留给你 – akc42
你所说的“对于第7个值,我必须插入这些ID和明年7个价值观”呢?预期的结果是什么? – Squirrel
前7个值是pay_amount列中的字段。 pay_amount列中有更多行。我有7个ID。这7个ID我必须维护pay_amount列。前7行,后7行和后7行相同的ID将重复,接下来的7行将重复相同的ID。 –