开发人员技术 | Transact-SQL
ANSI SQL 语言的 Microsoft 扩展,包括过程编程、局部变量和各种支持函数。
假如说有两列值分别是 177-4529-9002 和 129-2331-9002,我想先比较是否存在相同的数字,然后截取相同的9002。
有什么函数可以实现吗?
ANSI SQL 语言的 Microsoft 扩展,包括过程编程、局部变量和各种支持函数。
问题作者接受的答案
如果我理解正确的话,你可以使用String_Split先将数字串拆分开来,然后再使用集合函数INTERSECT获取交集。
详细请看这个示例:
DECLARE @TBL TABLE (ID INT,VAL1 VARCHAR(50),VAL2 VARCHAR(50))
INSERT INTO @TBL VALUES
(1,'177-4529-9002','129-2331-9002'),(2,'177-4529-9002','129-4529-5589')
SELECT ID,VALUE AS Same_Value
FROM @TBL CROSS APPLY STRING_SPLIT(VAL1, '-')
INTERSECT
SELECT ID,VALUE AS Same_Value
FROM @TBL CROSS APPLY STRING_SPLIT(VAL2, '-')
如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。