ハードコードされた文字列とFOR XML PATHを使用して作成された文字列の両方を連結する値を作成しようとしています。FOR XML PATHと文字列連結
SUBSTRING(
(SELECT (', ' + [value])
FROM [values]
FOR XML PATH('')
), 3, 1000) +
' text in between my values ' +
SUBSTRING(
(SELECT (', ' + [otherValue])
FROM [otherValues]
FOR XML PATH('')
), 3, 1000)
だから私のような何か期待する:Value1, Value2, Value3 text in between my values OtherValue1, OtherValue2, OtherValue3
を、代わりに私は空の文字列を取得します。
サブ文字列(その中のクエリを含む)を取り出すと、間に値が入ります。サブ文字列ブロックだけを追加すると、リスト文字列が戻されます。だから、なぜ部分文字列とFOR XML PATHクエリとの連結があると空の文字列を返すのか理解できません。
空の文字列についてはわかりませんが、[Values] '**または** [otherValues]に対するクエリが0行を返す場合は' NULL'となります。あなたは、 '合体 'に'部分文字列 'を埋め込むことができます。 –