我如何用子字符串分隔此文本?

问题描述 投票:0回答:1

我有一个包含这样的数据的平面文件(请注意,每个行=一行,并且都在1字段中,这就是为什么我使用子字符串将其分离出来,并使用格式更好的数据制作新表的原因):

011000015O0110000150122415000000000FEDERAL RESERVE BANK                1000 PEACHTREE ST N.E.              ATLANTA             GA303094470877372245711     
011000028O0110000151072811000000000STATE STREET BANK AND TRUST COMPANY JAB2NW                              N. QUINCY           MA021710000617664240011     
011000138O0110000151101310000000000BANK OF AMERICA, N.A.               8001 VILLA PARK DRIVE               HENRICO             VA232280000800446013511    

我正在尝试将其分开;但是,我不知道如何在SUBSTRING函数中找到第一个非整数数字。我正在分析这些数据。到目前为止,我已经分离了我需要的该数字序列的前2个部分;但是,我很难找到一种区分银行名称(FEDERAL RESEVE BANK)开头的好方法。名称开始之前似乎是35个整数,但是,如何找到名称的长度?

我真的只需要帮助,直到银行名称,即“联邦储备银行”。之后,我希望可以解决其余的问题。

SELECT 
    SUBSTRING(FIELD1, 0,10) ROUTING_NUMBER,
    SUBSTRING(FIELD1,11,9) FEDRESERVE_NUM,
    SUBSTRING(FIELD1,
FROM srcFlatFile.dbo.fedachdir2018

这就是我需要的(“ O”不需要它自己的列,并且现在不需要'000000000'和'122203950':]

011000015 O 011000015 0122415 000000000 FEDERAL RESERVE BANK                1000 PEACHTREE ST N.E.              ATLANTA             GA 30309-4470 8773722457 11     
011000028 O 011000015 1072811 000000000 STATE STREET BANK AND TRUST COMPANY JAB2NW                              N. QUINCY           MA 02171-0000 6176642400 11     
011000138 O 011000015 1101310 000000000 BANK OF AMERICA, N.A.               8001 VILLA PARK DRIVE               HENRICO             VA 23228-0000 8004460135 11    
sql ssms
1个回答
0
投票

您拥有的是固定宽度文件导出。谁向您提供文件,谁都应该给您一个导入说明,但听起来好像他们没有为您这样做。但是,这不是“所有领域”。只是字段设置了长度,如果有的话,规范会告诉您将其分解的位置。

© www.soinside.com 2019 - 2024. All rights reserved.