我有以下表和SQL Server數據庫:我可以在我的表中有一列是另一列的哈希值並自動計算出來嗎?
CREATE TABLE [dbo].[Kanji] (
[KanjiId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[Text] NVARCHAR (5) NOT NULL,
[Freq] INT NULL,
[Grade] INT NULL,
}
有大量行的在這個表,我希望能夠選擇只有10%。理想情況下,我希望在表中有一列(可能是一個計算列),就像[文本]列的內容的散列值。哈希是一個從0到9的數字,因此我可以選擇具有此值的所有行。
有什麼方法可以創建像這樣的列?
你有什麼樣的散列函數?如果您要使用Java或C#用於哈希映射的類型,那麼您可能永遠不會得到具有相同哈希的兩行。或者至少在碰撞開始發生之前,您需要一張非常大的桌子。 –
我的意思是你可以做到這一點,例如,你可以做''partCol] AS CHECKSUM([Text])%10 PERSISTED'這理論上應該粗略地將你的表分成10個。但是真的,爲什麼你一次選擇10%?似乎還有一些其他問題可能需要以更好的方式解決。 – ZLK