SQL使用like查找两个表之间的匹配

时间:2014-05-15 06:29:12

标签: sql sql-like

我有两张桌子:

table 1 - 〜230 000行,包含产品序列号 table 2 - ~4700行,还包含产品序列号,但格式有点不同

table 1序列号看起来像123456 table 2序列号看起来像ABC123456DGF

我需要找出表2中实际存在多少来自表2的序列号。我可以使用LIKE函数来完成它但我很难弄清楚如何在整个表中正确循环它以便每一行都得到对表2进行了测试。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

可能这可以帮到你..

declare @var varchar(50)='ABC123456DGF'

SELECT LEFT(Val,PATINDEX('%[^0-9]%', Val+'a')-1) from(

    SELECT SUBSTRING(@var, PATINDEX('%[0-9]%', @var), LEN(@var)) Val
) x

select * from Table_1 where product_serial_numbers = @var

答案 1 :(得分:0)

在这种情况下,我可能会调整table2中的序列号...

SELECT Substr(serial_no,4,10) FROM Table 2

然后将其加入table1

SELECT T1.serial_no
FROM table1 T1
INNER JOIN (SELECT Substr(serial_no,4,10) as serial_no FROM Table2) T2
ON T1.serial_no T2.serial_no