Разделение данных из столбца с несколькими разрывами строк char(13) на отдельные столбцы

Поле называется fmstreet, если оно отображается в службах SSRS и содержит имя менеджера, начинающееся с ATTN: Store Manger, почтовый адрес 1 и почтовый адрес 2. Данные в SSMS выглядят следующим образом: ATTN: Brian Adams 343 Albert Ave 17th Street. Это отображает поле в SSRS

ВНИМАНИЕ: Брайан Адамс
343 Альберт Авеню
17-я улица

Мне удалось поместить первую строку в собственный столбец, но я точно не знаю, как сделать две другие. Кроме того, некоторые строки имеют только один почтовый адрес, а не два.

SELECT somast.fsono, 
somast.fcustno,
somast.fcontact,
soship.fmstreet,
Case When cast(soship.fmstreet AS CHAR(100)) like 'ATTN:%'
Then LEFT(cast(soship.fmstreet AS CHAR(100)),CHARINDEX(CHAR(13),cast(soship.fmstreet AS CHAR(100))))
End as 'Attention'
FROM  soitem
INNER JOIN somast ON soitem.fsono = somast.fsono
LEFT OUTER JOIN oship ON somast.fsono = soship.fcsono AND soship.fcenumber = ''
WHERE  (somast.fstatus <> 'Cancelled') AND (somast.fsocoord = 'IFP'
OR somast.fsocoord = '711');

person David    schedule 24.08.2018    source источник


Ответы (2)


Я думаю, что ваш лучший вариант здесь - изучить использование функции Split в SSRS, и я думаю, вы можете разделить строку на основе char (13). Кажется, что этот пост направит вас правильно, я бы обязательно проверил наличие значения, как он предлагает.

выражение ssrs для разделения строки возможно?

person Jesse    schedule 24.08.2018
comment
Спасибо за ссылку, посмотрю и отчитаюсь. - person David; 25.08.2018

Это потому, что вы делаете результаты в сетке... измените вывод SSMS на результаты в текст, и вы увидите разрывы строк. Инструменты> Параметры> Результаты запроса> Результаты в текст или просто нажмите кнопку на панели инструментов, она слева на изображении ниже:

введите здесь описание изображения

person scsimon    schedule 24.08.2018
comment
Это не я прошу сделать. - person David; 25.08.2018