試圖編寫一些執行以下操作的SQL。根據分組的UserId創建唯一ID
如果我有一個用戶標識字段12345,並且該用戶有10條記錄,則我想創建一個字段,該字段爲1234xxxx ,其中xxxx表示基於日期字段的這些記錄的順序,1 - 10
如此12340001,12340002,12340003等,高達12340010
的思考?
試圖編寫一些執行以下操作的SQL。根據分組的UserId創建唯一ID
如果我有一個用戶標識字段12345,並且該用戶有10條記錄,則我想創建一個字段,該字段爲1234xxxx ,其中xxxx表示基於日期字段的這些記錄的順序,1 - 10
如此12340001,12340002,12340003等,高達12340010
的思考?
下面是獲得新值,假設userid
的方法是一個字符串
select (left(userid, 4)+right(100000 +
row_number() over (partition by userid order by datefield), 4)
)
您也可以在update
聲明,如果你想改變在表中的值使用。
Declare @x Table (Id INT)
INSERT INTO @x (ID) VALUES (1001),(1002),(1003),(1004),(1005)
select * from @x
select (
left(ID, 4)+right(10000 +DENSE_RANK() over (order by Id), 4)
)
from @x
我們還可以使用密集等級,從而獲得所需的輸出
當用戶得到他們的第10000記錄,會發生什麼? – mellamokb
我會處理,我只是尋找骨架代碼,以開始。 – Matt
該字段的類型是什麼? –