我有列數據。我需要在另一列中插入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。 –