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 между моими значения OtherValue1, OtherValue2, OtherValue3 , но вместо этого я получаю пустую строку.

Если я извлекаю подстроки (включая запрос внутри него), я получаю промежуточные значения, а если я добавляю только один из блоков подстроки, я получаю строку списка обратно. Поэтому я не могу понять, почему конкатенация с подстрокой и запросами FOR XML PATH приводит к возврату пустой строки .... ПОМОЩЬ!

6
задан marc_s 20 July 2011 в 05:19
поделиться