Digamos que tengo un conjunto de 2 palabras:T-SQL Obtener porcentaje de coincidencia carácter de 2 cadenas
Alexander y Alecsander O Alexander y Alegzander
Alexander y Aleaxnder, o cualquier otra combinación. En general, estamos hablando de errores humanos al escribir una palabra o un conjunto de palabras.
Lo que quiero lograr es obtener el porcentaje de coincidencia de los caracteres de las 2 cuerdas.
Esto es lo que tengo hasta ahora:
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 --> returns both matches and missmatches
SELECT * FROM @resultsTable
DECLARE @nrOfMathches INT, @nrOfMismatches INT, @nrOfRowsInResultsTable INT
SELECT @nrOfMathches = COUNT(1) FROM @resultsTable WHERE ch1 IS NOT NULL AND ch2 IS NOT NULL
SELECT @nrOfMismatches = COUNT(1) FROM @resultsTable WHERE ch1 IS NULL OR ch2 IS NULL
SELECT @nrOfRowsInResultsTable = COUNT(1) FROM @resultsTable
SELECT @nrOfMathches * 100/@nrOfRowsInResultsTable
El SELECT * FROM @resultsTable
volverán los siguientes:
ch1 ch2
NULL 5
[blank] [blank]
D D
O O
R R
W W
¿Y cuál es el problema con esto? ¿Ese código funciona correctamente? –
Eso no es preciso. –