我需要在SQL中连接两个表。没有共同的领域。但是一个表有一个值为krin1001
的字段,我需要它与另一个表中值为1001
的行连接。
加入背后的想法是我有多个客户,但在一个表中,客户ID是' krin1001' ' krin1002'等等,在这张表中它们已售出多少。在另一张表中,客户是' 1001' ' 1002'等等,在这个表中有名称和地址等。因此,在匹配和加入之前,我总是需要从场上剥离的前4个角色。它可能并不总是' krin'我需要它与' khjo1001'此外,它仍然需要加入' 1001'来自另一个表的价值。
这可能吗?
希望你能帮助我。
答案 0 :(得分:1)
您需要使用子字符串:
ON SUBSTRING(TableA.Field, 5, 4) = TableB.Field
或者右:
ON RIGHT(TableA.Field, 4) = TableB.Field
答案 1 :(得分:0)
您还可以尝试使用CHARINDEX
函数进行连接操作。如果来自table1
的值包含来自table2
行的值,则该值将包含在结果集中。
;WITH table1 AS(
SELECT 'krin1001' AS val
UNION ALL
SELECT 'xxx'
UNION ALL
SELECT 'xyz123'
),
table2 AS(
SELECT '1001' AS val
UNION ALL
SELECT '12345'
UNION ALL
SELECT '123'
)
SELECT * FROM table1 AS t
JOIN table2 AS T2 ON CHARINDEX(T2.val, T.val) > 0
答案 2 :(得分:0)
将其用作:
SELECT
*
FROM table t1
INNER JOIN table t2 ON RIGHT(t1.col1, 4) = t2.col1;