【发布时间】:2017-08-25 10:54:09
【问题描述】:
我有一个文本字段,想从该字段中提取一个 ID 号 - ID 始终以 8 开头,长度为 12 个字符(例如 899900014658),当前代码使用以下子字符串方法:
substring(textfield,charindex('8',textfield),12) as extractedID
这会提取以 8 开头的任何内容,因此我会在提取的 ID 字段中得到诸如“上午 8 点”、“二月 8 日”等结果。
有没有一种方法可以提取以 8 开头且第二个和第三个字符也是数字的任何内容?
编辑 - 使用 PATINDEX 解决
SUBSTRING(SubmissionDiaryEntry,(PATINDEX('%8[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%',SubmissionDiaryEntry)),12)
【问题讨论】:
标签: sql sql-server tsql substring