Sql 比较数据略有不同的不同表中的记录
我有两张桌子。每个表都有产品信息和价格。我想能够得到的结果,显示产品名称和价格。 但是,每个表中的产品名称的书写方式略有不同。e、 g 表1Sql 比较数据略有不同的不同表中的记录,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
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在两个表中同时提取名称和强度?