我有以下表和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