Als ik begrijp wat je zegt, dan als Col1
bevat de string "SUP", u wilt deze tag in uw uiteindelijke XML:
<ss:Data ss:Type="String">SomethingContainingSup</ss:Data>
Anders wilt u deze uitdrukking:
<Data ss:Type="String">SomethingElse</Data>
Ik denk dat je dat kunt krijgen met dit SQL-fragment:
SELECT CASE WHEN COL1 LIKE '%SUP%' THEN 'String' END as [Cell/ss:Data/@ss:Type],
CASE WHEN Col1 Like '%SUP%' THEN Col1 END as [Cell/ss:Data],
CASE WHEN COL1 NOT LIKE '%SUP%' THEN 'String' END as [Cell/Data/@ss:Type],
CASE WHEN Col1 NOT Like '%SUP%' THEN Col1 END as [Cell/Data],
''
Waarom de jouwe niet werkte:je kunt de naam van een kolom (of van een XML-element) niet voorwaardelijk maken. Het dichtst dat u kunt krijgen, is om de ene of de andere expressie te laten evalueren tot null, in welk geval deze niet wordt weergegeven in de uiteindelijke XML.