Jen*_*wka 6 mysql sql sql-server
有什么功能类似于BIT_COUNTMSSQL中的MYSQL 功能吗?我想在MSSQL中创建一个非常简单的汉明距离函数,我可以在我的选择中使用它.
这是我对MYSQL的看法:
CREATE FUNCTION `HAMMINGDISTANCE`(`hasha` BIGINT, `hashb` BIGINT)
RETURNS int(11)
DETERMINISTIC
RETURN
BIT_COUNT(hasha^hashb)
Run Code Online (Sandbox Code Playgroud)
为什么不在T-SQL中编写自己的bit_count代码?如果您只需要计算bigint中的设置位数,则无需使用SQL CLR.这是一个例子:
CREATE FUNCTION bit_count
(
@pX bigint
)
RETURNS int
AS
BEGIN
DECLARE @lRet integer
SET @lRet = 0
WHILE (@pX != 0)
BEGIN
SET @lRet = @lRet + (@pX & 1)
SET @pX = @pX / 2
END
return @lRet
END
GO
Run Code Online (Sandbox Code Playgroud)
此外,这是一个小提琴你可以尝试看到这个功能在行动.
请注意,此算法仅适用于非负bigints.如果您正在寻找适用于负bigint的算法,请参阅此链接.
| 归档时间: |
|
| 查看次数: |
1046 次 |
| 最近记录: |