[英]how to split a single row in to multiple rows in SQL 2008
我在一行中有一些定界符分隔的值,它是数据库中的一行。 但是在检索值时,我想获取值,因为基于行的定界符存在多个行。
以下是我的查询:
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>
但是我希望关键字在上述情况下成为多行,因为它将是五行,因为稍后我将不得不将这些值带到组合框中。
请帮我做到这一点。
最好的祝福
您可以使用此功能。 它根据输入字符串和分隔符返回分割值表。
用法:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.