如何在 SQL Server 中查询相似度百分比?

Posted

技术标签:

【中文标题】如何在 SQL Server 中查询相似度百分比?【英文标题】:How to make a a query of similarity percentage in SQL Server? 【发布时间】:2017-08-31 21:31:36 【问题描述】:

我有一个流程,在我将数据提交到数据库之前,我必须检查数据是否已经存在于数据库中。如果它发现了相似性,我想显示它的相似性百分比。 我有一个类似的查询:

SELECT [NAME]
      ,[IDENTITY_NUMBER]
      ,[BIRTHDATE]
      ,[SEX]
FROM [USER]
WHERE [NAME] = @NAME
OR [IDENTITY_NUMBER] = @IDENTITY_NUMBER
OR [BIRTHDATE] = @BIRTHDATE
OR [SEX] = @SEX

如果我输入的名称与数据库中存在的名称之间只有名称相似,我想显示 25% 相似。如果只有名字和生日,那么 50%。如果一切都相似,那么 100%。你知道怎么做吗?

【问题讨论】:

【参考方案1】:

假设匹配百分比基于匹配的属性数量,您可以使用case

select [NAME],
    [IDENTITY_NUMBER],
    [BIRTHDATE],
    [SEX],
    case when [NAME] = @NAME then 25 else 0 end
    + case when [IDENTITY_NUMBER] = @IDENTITY_NUMBER then 25 else 0 end
    + case when [BIRTHDATE] = @BIRTHDATE then 25 else 0 end
    + case when [SEX] = @SEX then 25 else 0 end as match_percentage
from [USER]
where [NAME] = @NAME
    or [IDENTITY_NUMBER] = @IDENTITY_NUMBER
    or [BIRTHDATE] = @BIRTHDATE
    or [SEX] = @SEX

【讨论】:

我试过了,但是match_percentage显示的都是空值 @hendraspt - 哎呀。错过了else 部分。现在更新了。请再试一次?

以上是关于如何在 SQL Server 中查询相似度百分比?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算直方图(特征向量)之间的相似度百分比

如何确定openCV中图像相似度的百分比[关闭]

如何测量语音文件的相似度

如何计算两个图像的相似度百分比,如下图我想在我的项目中实现它

与 BigQuery SQL 的余弦相似度?

SQL(大查询)文本相似度