0

区切り文字で区切られた単一の行に値があります。これはデータベースの単一の行です。しかし、値を取得するとき、区切り文字に基づく複数の行が行に存在するため、値を取得したいと思います。

以下は私の質問です:

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>

しかし、上記の場合、キーワードを複数行として表示したいのですが、後でこれらの値をコンボボックスに入れる必要があるため、5行になります。

これをするのを手伝ってください。

よろしくお願いします

4

1 に答える 1

1

この機能を使用できます。入力文字列と区切り記号に基づいて、分割された値のテーブルを返します。

使用法:

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

于 2013-02-19T09:56:53.313 に答える