【问题标题】:how to split a single row in to multiple rows in SQL 2008如何在 SQL 2008 中将单行拆分为多行
【发布时间】:2013-02-19 09:53:37
【问题描述】:

我在单行中有值,由某个分隔符分隔,它是数据库中的单行。但是在检索值时,我希望根据行中存在的分隔符将值作为多行获取。

以下是我的查询:

SELECT (
SELECT 
RTRIM(ISNULL(T1.[CIMtrek_Keywords],'')) AS '@CIMtrek_Keywords'
FROM 
(SELECT 
     NULLIF(CD.[CIMtrek_Keywords],'') CIMtrek_Keywords
     FROM CIMtrek_SystemTable_DatawareHouse CD WHERE  LEN(LTRIM(RTRIM(ISNULL(LTRIM(RTRIM(CD.[CIMtrek_KeyField])),'')))) != 0 and CIMtrek_KeyField='CER Type') AS T1 
FOR XML PATH('Record'), TYPE ) FOR XML PATH('CarrierCode_Destination'), TYPE

以下是我得到的结果。

    <CarrierCode_Destination>
  <Record CIMtrek_Keywords="Bucket - Minor Project|Bucket - Major Project|Budget - Named Project|AddFund - Named Project|Already Approved|Admin" />
</CarrierCode_Destination>

但我希望关键字在上述情况下以多行形式出现,它将是五行,因为稍后我将不得不将这些值带入组合框中。

请帮我做这件事。

最好的问候

【问题讨论】:

    标签: sql xml sql-server-2008 xquery


    【解决方案1】:

    您可以使用this 函数。它根据输入字符串和分隔符返回一个拆分值表。

    用法:

    select * 
    from dbo.fn_ParseText2Table('Bucket - Minor Project|Bucket - Major Project|Budget - Named Project|AddFund - Named Project|Already Approved|Admin','|')
    

    输出:

    POSITION    INT_VALUE   NUM_VALUE   TXT_VALUE
    1           (null)      (null)      Bucket - Minor Project
    2           (null)      (null)      Bucket - Major Project
    3           (null)      (null)      Budget - Named Project
    4           (null)      (null)      AddFund - Named Project
    5           (null)      (null)      Already Approved
    6           (null)      (null)      Admin
    

    我已经为你准备好了SqlFiddle:http://sqlfiddle.com/#!3/d41d8/9030

    【讨论】:

    • 请看我的问题,您的回答对我没有帮助,对不起,感谢您的努力
    • @Anto 为什么没有有用?你需要什么?
    • usr 希望如果我没记错的话,我必须根据上述答案创建另一个表来存储值,它还涉及要返回的另一个函数。
    • @Anto 你说“我想根据行中存在的分隔符获取多行的值。” 我描述的函数完美地做到了这一点
    • @Anto 你不能指望答案能完成你所有的工作。答案旨在解决核心问题并使您能够自己完成工作。您应该将此标记为已接受并实际尝试使用它!
    猜你喜欢
    • 1970-01-01
    • 2018-02-14
    • 2023-04-02
    • 2021-08-10
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多