Wenn ich verstehe, was Sie sagen, dann wenn Col1
die Zeichenfolge "SUP" enthält, möchten Sie dieses Tag in Ihrem endgültigen XML:
<ss:Data ss:Type="String">SomethingContainingSup</ss:Data>
Andernfalls möchten Sie diesen Ausdruck:
<Data ss:Type="String">SomethingElse</Data>
Ich denke, Sie können das mit diesem SQL-Fragment erreichen:
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],
''
Warum Ihre nicht funktioniert hat:Sie können den Namen einer Spalte (oder eines XML-Elements) nicht bedingt machen. Das Beste, was Sie erreichen können, ist, den einen oder anderen Ausdruck zu null auszuwerten. In diesem Fall wird er nicht im endgültigen XML gerendert.