当长度为4或>时,我需要从字符串中解析数字。 我有一个测试查询。我需要'66'之后的数字,如果找不到匹配项,也需要它返回空白。
DECLARE @Str nvarchar(1000)
SET @Str = 'ANDERSON, Doe 66 M - MEDICAL ONCOLOGY 40225 (DFCI)'
--SET @Str = 'NTW LOANER - TELECOMMUNICATIONS (DFCI)'
SELECT SUBSTRING(@str,
PATINDEX('% [0-9]%',@str)+1,
PATINDEX('%[^0-9]%',
SUBSTRING(@str,
PATINDEX('% [0-9]%',@str)+1,
LEN(@str))
+ ' ')-1);
答案 0 :(得分:0)
这就是我的解决方法:您重复模式x次数;我选择了3。
SUBSTRING(s.Description,
PATINDEX('% [0-9][0-9][0-9]%',s.Description)+1,
PATINDEX('%[^0-9]%',
SUBSTRING(s.Description,
PATINDEX('% [0-9][0-9][0-9]%',s.Description)+1,
LEN(s.Description))
+ ' ')-1);