我有两张桌子:
table 1
- 〜230 000行,包含产品序列号
table 2
- ~4700行,还包含产品序列号,但格式有点不同
table 1
序列号看起来像123456
table 2
序列号看起来像ABC123456DGF
我需要找出表2中实际存在多少来自表2的序列号。我可以使用LIKE函数来完成它但我很难弄清楚如何在整个表中正确循环它以便每一行都得到对表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