相关疑难解决方法(0)

使用T-SQL进行模糊匹配

我有一个表的人与personaldata等.有很多专栏,但这里曾经感兴趣的是:addressindex,lastname以及firstnameaddressindex公寓门口钻一个独特的地址.因此,如果我"喜欢下面"两个人和lastname一个人firstnames相同,他们很可能是重复的.

我需要一种方法来列出这些重复项.

tabledata:

personid     1
firstname    "Carl"
lastname     "Anderson"
addressindex 1

personid     2
firstname    "Carl Peter"
lastname     "Anderson"
addressindex 1
Run Code Online (Sandbox Code Playgroud)

我知道如果我要在所有列上完全匹配,但是我需要模糊匹配来完成这个技巧(来自上面的例子),结果如下:

Row     personid      addressindex     lastname     firstname
1       2             1                Anderson     Carl Peter
2       1             1                Anderson     Carl
.....
Run Code Online (Sandbox Code Playgroud)

关于如何以一种好的方式解决这个问题的任何提示?

t-sql sql-server fuzzy-search

66
推荐指数
5
解决办法
14万
查看次数

T-SQL获取2个字符串的字符匹配百分比

假设我有两个单词:

Alexander和Alecsander或Alexander和Alegzander

亚历山大和Aleaxnder,或任何其他组合.一般来说,我们在谈论输入单词或一组单词时的人为错误.

我想要达到的是获得2个字符串的字符匹配百分比.

这是我到目前为止:

    DECLARE @table1 TABLE
(
  nr INT
  , ch CHAR
)

DECLARE @table2 TABLE
(
  nr INT
  , ch CHAR
)


INSERT INTO @table1
SELECT nr,ch FROM  [dbo].[SplitStringIntoCharacters] ('WORD w') --> return a table of characters(spaces included)

INSERT INTO @table2
SELECT nr,ch FROM  [dbo].[SplitStringIntoCharacters] ('WORD 5')

DECLARE @resultsTable TABLE
( 
 ch1 CHAR
 , ch2 CHAR
)
INSERT INTO @resultsTable
SELECT DISTINCt t1.ch ch1, t2.ch ch2 FROM @table1 t1
FULL JOIN @table2 t2 ON  t1.ch = t2.ch …
Run Code Online (Sandbox Code Playgroud)

t-sql statistics character match

17
推荐指数
2
解决办法
2万
查看次数

具有匹配百分比的 SQL Server 模糊搜索

我正在使用 SQL Server 2008 R2 SP1。

我有一个包含大约 36034 条客户记录的表。我正在尝试对客户名称字段实施模糊搜索。

这是模糊搜索的功能

ALTER FUNCTION [Party].[FuzySearch]
    (
      @Reference VARCHAR(200) ,
      @Target VARCHAR(200)
    )
RETURNS DECIMAL(5, 2)
    WITH SCHEMABINDING
AS
    BEGIN 
        DECLARE @score DECIMAL(5, 2) 
        SELECT  @score = CASE WHEN @Reference = @Target
                              THEN CAST(100 AS NUMERIC(5, 2))
                              WHEN @Reference IS NULL
                                   OR @Target IS NULL
                              THEN CAST(0 AS NUMERIC(5, 2))
                              ELSE ( SELECT [Score %] = CAST(SUM(LetterScore)
                                            * 100.0 / MAX(WordLength
                                                          * WordLength) AS NUMERIC(5,
                                                              2))
                                     FROM   ( -- do
                                              SELECT    seq = …
Run Code Online (Sandbox Code Playgroud)

sql sql-server fuzzy-search

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

fuzzy-search ×2

sql-server ×2

t-sql ×2

character ×1

match ×1

sql ×1

statistics ×1