我有一个平面文件,其中包含以下数据:我正在尝试将其分离出来;但是,我不知道如何在SUBSTRING函数中找到第一个非整数数字。我正在分析这些数据。
011000015O0110000150122415000000000FEDERAL RESERVE BANK
011001962O1210003742080312122203950CATHAY BANK
到目前为止,我已经将此数字序列的前三个部分分开;但是,我很难找到一种区分银行名称(FEDERAL RESEVE BANK)开头的好方法。这个平面文件中的所有行都有不同的字符长度。
有时,tere是9个零,10个零,并且根本没有重复的零。对于此数据的分析,我不需要那些零或随后的数字。
SELECT
SUBSTRING(FIELD1, 0,10) ROUTING_NUMBER,
SUBSTRING(FIELD1,11,9) FEDRESERVE_NUM,
SUBSTRING(FIELD1,20,7) NO_IDEA_YET,
SUBSTRING(FIELD1,
FROM srcFlatFile.dbo.fedachdir2018
这就是我需要的(“ O”不需要它自己的列,并且现在不需要'000000000'和'122203950':]
011000015 O 011000015 0122415 000000000 FEDERAL RESERVE BANK
011001962 O 121000374 2080312 122203950 CATHAY BANK
这些字段的长度固定,因此可以使用:
select stuff(field, 1, 35, '')
您也可以搜索银行名称。名称中包含Os(而不是0)使情况变得相当复杂:
select stuff(field, 1, patindex('%[^0-9O]%', field) - 1, ''), patindex('%[^0-9O]%', field)