У меня есть плоский файл, который содержит такие данные (обратите внимание, что EACH LINE = ONE ROW и все в 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
Я пытаюсь выделить это;однако, я не знаю, как найти первое не int число в функции SUBSTRING. Я профилирую эти данные. До сих пор я отделил первые две части этой числовой последовательности, которые мне нужны;Тем не менее, я не могу найти хороший способ отделить начало названия банка (ФЕДЕРАЛЬНЫЙ РЕЗЕРВНЫЙ БАНК). Кажется, перед именем начинается 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