Om jag förstår vad du menar, då om Col1
innehåller strängen "SUP", du vill ha denna tagg i din slutliga XML:
<ss:Data ss:Type="String">SomethingContainingSup</ss:Data>
Annars vill du ha detta uttryck:
<Data ss:Type="String">SomethingElse</Data>
Jag tror att du kan få det med det här SQL-fragmentet:
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],
''
Varför ditt inte fungerade:du kan inte göra namnet på en kolumn (eller på ett XML-element) villkorligt. Det närmaste du kan komma är att få det ena eller andra uttrycket att utvärderas till null, i vilket fall det inte kommer att renderas i den slutliga XML.