Sql 比较数据略有不同的不同表中的记录

Sql 比较数据略有不同的不同表中的记录,sql,compare,Sql,Compare,我有两张桌子。每个表都有产品信息和价格。我想能够得到的结果,显示产品名称和价格。 但是,每个表中的产品名称的书写方式略有不同。e、 g 表1 Name Price Pack Size Aciclovir 200 mg Tablets 3.50 25 Aciclovir 400 mg Tablets 4.20 56 Aciclovir 800 mg Tablets

我有两张桌子。每个表都有产品信息和价格。我想能够得到的结果,显示产品名称和价格。 但是,每个表中的产品名称的书写方式略有不同。e、 g

表1

Name                       Price            Pack Size
Aciclovir 200 mg Tablets     3.50             25
Aciclovir 400 mg Tablets     4.20             56
Aciclovir 800 mg Tablets     5.40             35
ACICLOVIR CREAM              2.40             GM
表2

ACICLOVIR 200MG TABs           1              25
ACICLOVIR 200MG TABs           1              25
ACICLOVIR 400MG TABs           2              56
Aciclovir 5% Cream  2gm        2.30           na
我尝试过像这样的
,但没有真正得到我需要的结果

尽可能使用修剪删除空格。这对你有帮助 使列值相似

例如,800毫克和800毫克。。通过使用修剪,你可以得到同样的效果 值,然后在查询中使用它们

尽可能使用修剪删除空格。这对你有帮助 使列值相似

例如,800毫克和800毫克。。通过使用修剪,你可以得到同样的效果 值,然后在查询中使用它们

在这种情况下(以及在SQL Server中),我建议您使用以下方法:

REPLACE(a.Name, ' ', '') LIKE REPLACE(REPLACE(b.Name, ' ' ,''), 'TABs', 'TAB%s')
OR 
REPLACE(b.Name, ' ' ,'') LIKE REPLACE(REPLACE(a.Name, ' ', ''), 'CREAM', '%CREAM%')

我可以简单地告诉您,当您有正在更改的内容时,请将其从比较中删除;当您想忽略某个
'
时,请将其删除,依此类推。当一个
MG
正在更改时,您也可以在比较中删除它,我使用
REPLACE()

删除此忽略文本在这种情况下(在SQL Server中),我可以建议您使用此选项:

REPLACE(a.Name, ' ', '') LIKE REPLACE(REPLACE(b.Name, ' ' ,''), 'TABs', 'TAB%s')
OR 
REPLACE(b.Name, ' ' ,'') LIKE REPLACE(REPLACE(a.Name, ' ', ''), 'CREAM', '%CREAM%')


我可以简单地告诉您,当您有正在更改的内容时,请将其从比较中删除;当您想忽略某个
'
时,请将其删除,依此类推。当一个
MG
正在更改时,您也可以在比较中删除它,我通过使用
REPLACE()

删除此忽略文本,同时尝试在like查询中不输入完整关键字。。。因为它不会匹配,所以也尽量不要在like查询中输入full关键字。。。因为它不会匹配,所以也尽量不要在like查询中输入full关键字。。。因为它不匹配OK,如果我只想在产品名称中找到mg的值呢?mg可以在字符串中的任何位置,但前面总是有空格,后面总是有空格……好的,如果我想在产品名称中找到mg的值,怎么样?mg可以在字符串中的任何位置,但前面总是有空格,后面总是有空格……好的,如果我想在产品名称中找到mg的值,怎么样?mg可以在字符串中的任何位置,但前面总是有空格,后面总是有空格……因此在两个表中都有产品名称及其强度(mg)。名称始终位于字符串的开头,但强度可以在字符串中的任何位置,是否仍可以使用inStr在两个表中同时提取名称和强度?因此,在两个表中都有产品名称及其强度(mg)。名称始终位于字符串的开头,但强度可以在字符串中的任何位置,是否仍可以使用inStr在两个表中同时提取名称和强度?因此,在两个表中都有产品名称及其强度(mg)。名称始终位于字符串的开头,但强度可以在字符串中的任何位置,是否仍然可以使用inStr在两个表中同时提取名称和强度?