将具有多个 char(13) 换行符的列中的数据分离到它们自己的列中

Separating data from a column with multiple char(13) line breaks into their own columns

当该字段在 SSRS 中显示时,该字段称为 fmstreet,它包含以 A​​TTN 开头的经理姓名:Store Manger,街道地址 1 和街道地址 2。数据在 SSMS 中的显示方式是 ATTN:Brian Adams 343 Albert Ave 17th Street。这会在 SSRS

中显示该字段

ATTN: Brian Adams
343 Albert Ave
17th Street

我已经能够将第一行放到它自己的专栏中,但不知道如何做另外两行。还有一些行只有一个街道地址,而不是两个。

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');

这是因为您正在将结果转为网格...将您的 SSMS 输出更改为结果转为文本,您会看到换行符。 Tools > Options > Query Results > Results To Text 或者直接点击工具栏上的按钮,就是下图中左边的那个:

我认为您最好的选择是研究在 SSRS 中使用 Split 函数,我认为您可以根据 char(13) 拆分字符串。这个 post 似乎会正确地指导你,我肯定会像它建议的那样检查值的存在。

ssrs expression to split string possible?