更新我有了一個新列的表,和更新應該在新列去的值。爲了簡單起見,我減少了我的示例表結構以及我的查詢。下面是我希望我的輸出看起來。現場正在用相同的值
IDNumber NewColumn
1 1
2 1
3 1
4 2
5 2
WITH CTE_Split
AS
(
select
*,ntile(2) over (order by newid()) as Split
from TableA
)
Update a
set NewColumn = a.Split
from CTE_Split a
現在我做到這一點,當我得到我的表,它看起來這樣
IDNumber NewColumn
1 1
2 1
3 1
4 1
5 1
然而,當我做的選擇只有我能看到我得到的慾望輸出,現在我已經做到了這一點之前將結果集分成多個組,一切工作在選擇,但現在我需要更新表我得到這個奇怪的結果。不確定我做錯了什麼,或者是否有人可以提供任何形式的反饋。
那麼沮喪了一整天后,我才得以此代碼,並表的數據進行比較,我已經做了這個過程。這張桌子被更新爲全1的原因是因爲誰發表了這張桌子就認爲這應該是一個標誌。當它成爲現實時,它應該是一個整數,因爲在這種情況下,它實際上只有兩個可能的值,但在其他情況下它可能超過兩個。 非常感謝您提供的所有建議和幫助,它應該教會我在使用ntile函數時可以確定表格的數據類型。
如果更換'通過newid的順序()'與idnumber''順序會發生什麼? –
@ZeRaTuL_jF我想有時運行你的代碼,在某些者的結果都是一樣的你們的,我相信這是因爲該密鑰將創造怪異組合的隨機化。你的代碼意圖是什麼?也許,邏輯可以是其他。 –
你一直都有同樣的行爲嗎? –