The SQL Server DIFFERENCE function returns the a score from 0-4 based on how different two words sound. The DIFFERENCE function uses the SOUNDEX function to compare values of the input strings. A score of 0 means the strings are not similar and a value of 4 means very similar.
The basic syntax of a DIFFERENCE is as follows:
SELECT DIFFERENCE(string1, string2)For this, we will be using docker. This is recommended for more than just using SQL Server. To find how to install docker go here: https://docs.docker.com/engine/install/
Now create a file called docker-compose.yml and add the following.
version: "3.9"
services:
db:
image: "mcr.microsoft.com/mssql/server"
ports:
- 1433:1433
environment:
SA_PASSWORD: "Your_password123"
ACCEPT_EULA: "Y"Open a terminal and go to the folder the file is located. Then run the following.
docker-compose upIf you are looking for another good reference, you can check here: https://docs.docker.com/samples/aspnet-mssql-compose/.
For our first example, let's compare the word "sleigh" and "slay"
SELECT DIFFERENCE('sleigh', 'slay') as diff| diff |
|---|
| 3 |
As we can see these two words are very similar. Let's compare that to their soundex values.
SELECT SOUNDEX('sleigh') as sleigh, SOUNDEX('slay') as slay; | sleigh | slay |
|---|---|
| S420 | S400 |
Now, let's take a look at an example where the soundex scores are very different and the words sound dissimilar.
SELECT DIFFERENCE('strawberry', 'coffee') as diff| diff |
|---|
| 1 |
The sore is one as these words are pretty difference in sound. To check, we can also see the soundex scores again.
SELECT SOUNDEX('strawberry') as sleigh, SOUNDEX('coffee') as slay; | sleigh | slay |
|---|---|
| S361 | C100 |
