我陷入了一个需要使用模糊匹配填充历史数据的问题。我正在使用SQL Server 2014 Developer Edition
MainTbl.UNDERWRITER_CODE
是需要填充数据以代替NULL的位置。该数据必须来自LKP
表。匹配标准为MainTbl.UNDERWRITER_NAME
和LKP.UNDERWRTIER_NAME
样本:
CREATE TABLE MainTbl(UNDERWRITER_CODE int, UNDERWRITER_NAME varchar(100))
INSERT INTO MainTbl VALUES
(NULL,'dylan.campbell'),
(NULL,'dylanadmin'),
(NULL,'dylanc'),
(002,'Dylan Campbell'),
(002,'dylan.campbell'),
(002,'dylanadmin'),
(NULL,'scott.noffsinger'),
(001,'Scott Noffsinger')
CREATE TABLE LKP(UNDERWRITER_CODE int, UNDERWRITER_NAME varchar(100))
INSERT INTO LKP VALUES
(002,'Dylan Campbell'),
(001,'Scott Noffsinger')
预期输出:
2 dylan.campbell
2 dylanadmin
2 dylanc
2 Dylan Campbell
2 dylan.campbell
2 dylanadmin
1 scott.noffsinger
1 Scott Noffsinger
SELECT T2.UNDERWRITER_CODE,T2.UNDERWRITER_NAME
FROM MainTbl T1
INNER JOIN LKP T2
ON T1.UNDERWRITER_NAME LIKE CONCAT('%',LEFT(LOWER(T2.UNDERWRITER_NAME),charindex(' ', LOWER(T2.UNDERWRITER_NAME)) - 1),'%')