Hvis jeg forstår, hvad du siger, så hvis Col1
indeholder strengen "SUP", du vil have dette tag i din endelige XML:
<ss:Data ss:Type="String">SomethingContainingSup</ss:Data>
Ellers vil du have dette udtryk:
<Data ss:Type="String">SomethingElse</Data>
Jeg tror, du kan få det med dette 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],
''
Hvorfor din ikke virkede:Du kan ikke gøre navnet på en kolonne (eller på et XML-element) betinget. Det tætteste du kan komme er at få det ene eller det andet udtryk til at evaluere til null, i hvilket tilfælde det ikke bliver gengivet i den endelige XML.