Mysql 如何在SQLServer中进行相似性百分比查询?

Mysql 如何在SQLServer中进行相似性百分比查询?,mysql,sql,sql-server,stored-procedures,Mysql,Sql,Sql Server,Stored Procedures,我有一个过程,在我将数据提交到数据库之前,我必须检查数据是否已经存在于数据库中。如果它发现了相似性,我想显示它的相似性百分比。 我有一个类似这样的问题: SELECT [NAME] ,[IDENTITY_NUMBER] ,[BIRTHDATE] ,[SEX] FROM [USER] WHERE [NAME] = @NAME OR [IDENTITY_NUMBER] = @IDENTITY_NUMBER OR [BIRTHDATE] = @BIRTHDATE O

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

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%。您知道怎么做吗?

假设匹配百分比基于匹配的属性数,您可以使用
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

我已经试过了,但是匹配百分比显示为空value@hendraspt-哎呀。错过了
else
部分。现在更新。请再试一次?