【问题标题】:String split to table on whole column字符串拆分为整列的表
【发布时间】:2014-06-17 07:32:51
【问题描述】:

我有两个表,第一个,dbo.QuestionaireResponse 包括列 PersonID (int not null)、ApplicationID (int not null) 和 RaceIDs。 PersonID 是一个基本的 ID 列,但 RaceIDs 是一个 varchar(255),其中包含以逗号分隔的 ID 字符串(我知道设计不好)。另一个表是类型表 dbo.Race,有两列,RaceID(int 标识)和 RaceDescription(某种 varchar)。我需要以以下两种格式之一输出表格:

  1. PersonID、RaceDescription 作为一对多关系
  2. PersonID、RaceDescriptions(比赛描述列中以逗号分隔的值字符串)

在我的研究中,我遇到了这篇帖子 http://ole.michelsen.dk/blog/split-string-to-table-using-transact-sql/,但它不太适合这个问题,因为必须对列中的每条记录进行拆分。

除了数据之外,我最终将类型表传递给了 web 服务,但我很好奇是否还有其他可行的解决方案。在这种情况下,性能很重要,尽管类型表确实有少量或记录。

关于如何在 sql server 中执行此操作的任何建议?

【问题讨论】:

    标签: sql sql-server string replace string-split


    【解决方案1】:

    试试这个:

    SELECT q.PersonID, r.RaceDescription
    FROM dbo.QuestionaireResponse q JOIN dbo.Race r 
    ON ',' + q.RaceIDs + ','  LIKE  '%,' + CONVERT(varchar(10),r.RaceID) + ',%';
    

    SQL Fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 2019-04-16
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 2011-11-13
      • 1970-01-01
      相关资源
      最近更新 更多