나는 다음 표와 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