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

时间:2012-06-19 19:47:45

标签: sql tsql parsing

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

文件编号: XXXXXXX
用户名: XXXXXXXX
支票号码: XXXXXXXXX
打印机位置: XXXXXXXXXXXXX

上例中的X可以是任何字符集

我需要从该字符串中提取Check Number和Printer Location值(Xs)。

我不知所措?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

不幸的是,我需要去参加一个会议,但我可以给出一些指示。以下为您提供了如何处理支票号的风格:

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个错误。