Jeśli rozumiem, co mówisz, to jeśli Col1
zawiera ciąg "SUP", chcesz, aby ten tag znalazł się w końcowym pliku XML:
<ss:Data ss:Type="String">SomethingContainingSup</ss:Data>
W przeciwnym razie chcesz to wyrażenie:
<Data ss:Type="String">SomethingElse</Data>
Myślę, że możesz to uzyskać za pomocą tego fragmentu SQL:
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],
''
Dlaczego twoja nie zadziałała:nie możesz uczynić nazwy kolumny (lub elementu XML) warunkową. Najbliżej, co można uzyskać, jest wykonanie jednego lub drugiego wyrażenia z wartością null, w którym to przypadku nie zostanie ono wyrenderowane w końcowym kodzie XML.