我有两列写回数据并存储在数据库中
Contact_Name: "Mr John Smith" - Databox 1
Group_Name: "Mr J Smith" - Databox 2
两个名字都在一个字符串中,不能分开。
我需要验证两个数据库中存储的Surname是否匹配。
数据源包含数千个名称,其中一些会有连字符。第一个和第二个名字之间总会有一个空格。
答案 0 :(得分:0)
您需要做的是从上一个问题中获取答案:T-SQL - Extracting Surname from one column of data然后将surname
值与记录的其余部分一起存储。然后,您可以从那里与简单的相等进行比较:
select case when Contact_Name_Surname = Group_Name_Surname
then 'Match'
else 'No Match'
end as DoTheSurnamesMatch
from YourTable
答案 1 :(得分:0)
-- dummy data
;WITH [data] AS (
SELECT
[databox1] = N'Mr John Smith'
,[databox2] = N'Mr J Smith'
)
-- end dummy data
SELECT
[databox1] = [databox1]
,[databox2] = [databox2]
,[is_surname_same] = CASE WHEN RIGHT([databox1], CHARINDEX(SPACE(1), REVERSE([databox1])))
= RIGHT([databox2], CHARINDEX(SPACE(1), REVERSE([databox2])))
THEN 1 ELSE 0
END
FROM
[data];