ssis - 派生列的问题
问题描述
我正在尝试拆分一列,我想要逗号后面的值。以下是列的值:
Managing Partner
Director, Enterprise Architect
Manager, Storage Services
并非所有值都有逗号。
我在 SSIS 中使用派生列,代码如下:
(LTRIM(SUBSTRING([Title ],FINDSTRING([Title ],",",1) + 1,LEN([Title ]))))
我遇到的问题是没有逗号的值,我在新列中获取了整个字符串。
解决方案
LEFT
如果您从表中查询数据,您可以简单地通过and将字符串分解为其部分RIGHT
:
SELECT title
,CASE WHEN CHARINDEX(',',[title]) > 0 THEN LEFT(title,CHARINDEX(',',[title])-1) ELSE title END AS Title_Left
,CASE WHEN CHARINDEX(',',[title]) > 0 THEN RIGHT(title,len(title)-CHARINDEX(',',[title])) END AS Title_Right
FROM test
详情见小提琴:http ://sqlfiddle.com/#!18/b1dfa/1/1
如果您需要处理其他输入,例如平面文件或类似文件,您可以将相应的处理添加到派生列(如果字符串不包含逗号,则将整个字符串输出为第 1 列,否则逗号之前的左侧字符;类似右边部分:如果不包含逗号,则将该列留空,否则从逗号后面到字符串末尾输出字符串的右边部分。
推荐阅读
- python - 如何查看 conda 包的摘要或描述?
- android - 在观察到 Livedata 更改后,ViewSwitcher 在初始化时不使用 .showNext() 切换视图
- r - R:在确切日期拆分时间序列 Intor 训练/测试
- reactjs - 失败的道具类型:提供给“ForwardRef(Grid)”的无效道具“children”
- azure-devops - 积压级别名称更改时的 Powerbi 和 Azure DevOps(在线版)报告
- elasticsearch - Kibana 7.7.0 基础版:从 docker 启动时缺少管理选项卡安全面板
- python - 为冰雹序列创建生成器表达式
- unity3d - Unity/HLSL:根据表面法线尝试使用纹理图集的不同部分时出现奇怪的结果
- python - 无法让 swig %ignore 忽略命名空间中的类导致编译错误
- git-config - 使用 RStudio 提交到 github