我有一个文本(string)中的列表中SQL服务器和我需要确定如果任何的记录中包含社会安全号(没有数字在此列,只有案文,所以我需要拼出来的数字)。 换句话说,我需要检查是否任意字符串中包含的任何组合的九位数从十个可能的数字(一个、两个、三个、四个、五个、六、七、八、九、零)。 我可没有识别组合的任何四位数字(最后四个社会安全号码)。
我试过了 Like '%one%' or Like '%two%'
等等,但是,只有标识的单个词。 我需要找到至少四个在任何后果在同一串。
我有一个文本(string)中的列表中SQL服务器和我需要确定如果任何的记录中包含社会安全号(没有数字在此列,只有案文,所以我需要拼出来的数字)。 换句话说,我需要检查是否任意字符串中包含的任何组合的九位数从十个可能的数字(一个、两个、三个、四个、五个、六、七、八、九、零)。 我可没有识别组合的任何四位数字(最后四个社会安全号码)。
我试过了 Like '%one%' or Like '%two%'
等等,但是,只有标识的单个词。 我需要找到至少四个在任何后果在同一串。
你可以使用的一个汇总 EXISTS
有一个构造表的话
SELECT *
FROM YourTable t
WHERE EXISTS (SELECT 1
FROM (VALUES
('zero'),
('one'),
('two'),
('three'),
('four'),
('five'),
('six'),
('seven'),
('eight'),
('nine')
) v(word)
WHERE t.YourColumn LIKE '%' + v.word + '%'
HAVING COUNT(*) >= 4
);
你可以改变 >= 4
要 = 9
得到完全匹配的数量的话