В SQL я пытаюсь взять адрес разной длины и разделить его при возврате каретки на два отдельных поля. У меня есть адрес, успешно разделенный, но время от времени (17 из 300 раз) правая часть адреса оказывается неправильной.
Adr1: RM320 VOTECH(Char(10))abc BUFORD AVE,
Adr2: FIELD ATHLETIC BLDG(Char(10))abc 15TH AVE SE,
Нет пробела до или после возврата каретки.
select replace(RIGHT( REPLACE( 'RM320 VOTECH
abc BUFORD AVE,' , LEFT( 'RM320 VOTECH
abc BUFORD AVE,' ,
CHARINDEX( CHAR( 10 ) , 'RM320 VOTECH
abc BUFORD AVE,' )) , '' ) , CHARINDEX( CHAR( 10 ) , 'RM320 VOTECH
abc BUFORD AVE,' )),',','')
Это возвращает: «bc BUFORD AVE», когда он должен возвращать «abc buford ave»
select replace(RIGHT( REPLACE( 'FIELD ATHLETIC BLDG
abc 15TH AVE SE,' , LEFT( 'FIELD ATHLETIC BLDG
abc 15TH AVE SE,' ,
CHARINDEX( CHAR( 10 ) , 'FIELD ATHLETIC BLDG
abc 15TH AVE SE,' )) , '' ) , CHARINDEX( CHAR( 10 ) , 'FIELD ATHLETIC BLDG
abc 15TH AVE SE,' )),',','')
Это возвращает: "abc 15TH AVE SE" правильно.
Как два одинаковых выбора возвращают разные результаты?