我有一个带有下表的SQL Server数据库:
CREATE TABLE [dbo].[Kanji] (
[KanjiId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[Text] NVARCHAR (5) NOT NULL,
[Freq] INT NULL,
[Grade] INT NULL,
}
此表中有大量行,我希望能够只选择10%。理想情况下,我希望在表中有一个列(可能是计算列),类似于[Text]列内容的哈希值。哈希是0-9之间的数字,因此我可以选择具有此值的所有行。
有没有办法可以像这样创建一个列?
答案 0 :(得分:1)
试试这个:
CREATE TABLE [dbo].[Kanji] (
[KanjiId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[Text] NVARCHAR (5) NOT NULL,
[Freq] INT NULL,
[Grade] INT NULL,
[Hash] AS (CONVERT([bigint],hashbytes('md5',[Name]))%(5)+(5)),
}
例如,您将从-9到9获取值。