0

サービスエントリと呼ばれるテーブルがあり、連結された文字列を作成しようとしています。

ID  ServiceEntryID  PartID  Comment  ServiceTypeIDs  PartDescription
1        2           54      xyz      1               hellothere
2        2           22                               howdy
3        33          54      uhu      1               xyz

希望する文字列形式

PartID~PartDescription~ServiceTypeIDs~コメント

目的の文字列値

したがって、値が 2 のサービス エントリ ID 列の場合:

54 ~ こんにちは ~ 1 ~ xyz | 22 ~ハウディ~ヌル~ |

値が 33 のサービス エントリ ID 列の場合:

33~xyz~1~うふ

エントリにコメントがない場合は null を追加しませんが、servicetypeids が空の場合は null を追加します

4

2 に答える 2

2
SELECT
     ServiceEntryID,
     STUFF(
         (SELECT '|' + CAST(PartID AS VARCHAR(5)) + '~' +
                       PartDescription  + '~' +
                       COALESCE(CAST(ServiceTypeIDs AS VARCHAR(5)), 'NULL')  + '~' +
                       COALESCE(Comment, 'NULL')
          FROM TableName
          WHERE ServiceEntryID = a.ServiceEntryID
          FOR XML PATH (''))
          , 1, 1, '')  AS ResultList
FROM TableName AS a
WHERE ServiceEntryID = 2
GROUP BY ServiceEntryID
于 2013-02-22T16:24:20.263 に答える
0
Select   coalesce(partID,'NULL') +'~'+ 
coalesce(PartDescription,'NULL') +'~'+ 
 coalesce(ServiceTypeIDs,'NULL') +'~'+
 coalesce(Comment,'NULL') as DesiredStringFormat
FROM yourTableName

上記は、いずれかのフィールドが NULL の場合に「NULL」という単語に置き換えます。

http://msdn.microsoft.com/en-us/library/ms190349.aspx

于 2013-02-22T16:24:10.340 に答える