我在SQL Server的一个表中有一个文本记录(字符串(列,我需要确定是否有任何记录包含社会安全号码(该列中没有数字,只有文本,所以我需要拼写数字(。换句话说,我需要检查任何字符串是否包含十个可能的数字中的九个数字的任何组合(一、二、三、四、五、六、七、八、九、零(。我可以识别任意四位数字的组合(社会保障号码的最后四位(。
我尝试了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
,以获得字数的精确匹配