【问题标题】:How can I split a comma-delimited value into multiple rows?如何将逗号分隔的值拆分为多行?
【发布时间】:2013-05-14 14:19:33
【问题描述】:

我有 table1 查询字符串,它从远程表中提取以下内容,其中 myKeys 实际上是一个逗号分隔的列表:

table1:  myKeys varchar, myCount int, myComment varchar

我需要根据以下内容更新本地 2008r2 表:

table2: split somehow - myKeys int, myCount int, myComment varchar

目前,我有一个 SSIS 包,它可以提取信息并创建一个本地表。我已经看到一些使用函数来提供选择语句的答案(例如myKeys),但没有包含多个字段,例如(myKeysmyCountmyComment)。

【问题讨论】:

  • 您是否真的在 SQL Server 2008 中使用 DTS,或者您的意思是 SSIS?看起来你可以像你说的那样在脚本任务中拆分值来生成 UPDATE 语句;您尝试过什么?使用找到的其他答案有什么问题?
  • @Pondlife 完全有可能是错的。我只是尽力修复标签。我应该先检查一下是否还有另一个“2008r2”。
  • @Pondlife - 我正在使用 SSIS,只是保留术语。我正在寻求指导,因为我不知道从哪里开始。我看过:sommarskog.se/arrays-in-sql-2008.htmlmichaeljswart.com/2008/06/…,我对如何开始感到困惑。谢谢。
  • 如果您想在 TSQL 中执行此操作(例如,在您的包中的执行 SQL 任务中),它已经被asked and answered 多次。如果您想在 SSIS 组件中执行此操作,那么使用脚本任务可能是最简单的,因为您可以简单地使用 .NET String.Split() 方法。
  • 很抱歉打扰您。我会去别的地方。

标签: sql-server ssis sql-server-2008-r2


【解决方案1】:

也许让它成为一个不规则的正确或固定长度的目的地,然后用逗号作为文本限定符?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 2019-09-11
    • 1970-01-01
    • 2012-05-21
    • 2018-03-26
    相关资源
    最近更新 更多