sql-server - 将具有多个 char(13) 换行符的列中的数据分离到它们自己的列中
问题描述
当该字段显示在 SSRS 中时,该字段称为 fmstreet,它包含以ATTN 开头的经理姓名:Store Manger、街道地址 1 和街道地址 2。数据在 SSMS 中的显示方式是 ATTN:Brian Adams 343 Albert Ave 17th Street。这将显示 SSRS 中的字段
收件人:布赖恩·亚当斯
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');
解决方案
我认为您最好的选择是研究在 SSRS 中使用 Split 函数,我认为您可以基于 char(13) 拆分字符串。这篇文章似乎可以正确地指导您,我肯定会像它所暗示的那样检查该值的存在。
推荐阅读
- postgresql - 无法从 pgadmin、CLI 连接到 IBM PostgreSQL
- azure-devops - 在 Azure DevOps 中导入工作项 .csv 文件时出错
- python-3.x - 2d python 列表populaiton
- android - Flutter json数组解析
- reactjs - 我从 apollo 客户端的突变怎么会得到 400 错误,而我可以在操场上做到这一点?
- javascript - 将 Promise.all 与 Promise 数组一起使用
- nginx - 页面数据刷新不一致
- php - 如何合并 3 个数组、分组和计算重复项?
- python - 当 AWS::CustomResource 具有列表类型输出时如何获取选择性项目
- java - 如果在 java 中 m = 5,-m-- 的输出是什么?