从字符串解析特定短语(T-Sql)

从字符串解析特定短语(T-Sql),sql,tsql,parsing,Sql,Tsql,Parsing,我在数据库中有一个字段,其结构如下: 档案编号:XXXXXXX 用户名:XXXXXXXX 支票号码:XXXXXXXXX 打印机位置:XXXXXXXX 上面示例中的Xs可以是任何字符集 我需要从该字符串中提取支票号码和打印机位置值 我不知所措,有人接吗 非常感谢您的帮助。不幸的是,我需要去参加一个会议,但我可以给您一些指导。以下内容为您介绍了如何处理支票号码: select (case when fcn > 0 then substring(f, fcn+21, c

我在数据库中有一个字段,其结构如下:

档案编号:XXXXXXX 用户名:XXXXXXXX 支票号码:XXXXXXXXX 打印机位置:XXXXXXXX

上面示例中的Xs可以是任何字符集

我需要从该字符串中提取支票号码和打印机位置值

我不知所措,有人接吗


非常感谢您的帮助。

不幸的是,我需要去参加一个会议,但我可以给您一些指导。以下内容为您介绍了如何处理支票号码:

select (case when fcn > 0
             then substring(f, fcn+21, charindex('<BR>', f, fcn)-fcn)
        end) as checknumber
from (select t.*, charindex('Check Number(s):</B>', f) as fcn
      from t
     ) t
子查询只查找标识符的位置(如果有的话)。外部查询从字段中提取适当的字符。复杂的是计算子字符串的长度


注意:由于我现在无法测试它,因此可能会出现1对1的错误。

为什么不使用正确的架构强制执行该结构?使用charindex两次,查找检查编号:然后查找打印机位置:,然后对之间的部分进行子串,然后使用right获取结束部分。T-SQL中的字符串解析非常糟糕。