おそらく答えるのは本当に簡単な質問ですが、私の人生ではどこにも見つけることができません。
FOR XML パスを使用して、データベースから選択リスト オプションを構築しようとしています。これまでのところ、私はこれを持っています:
SELECT ID AS 'option/@value', Name AS [option]
FROM MyTable
FOR XML Path('')
これは私にこれを得る:
<option value="1">Item 1</option><option value="2">Item 2</option>... and so on
はい、非常に単純なことですが、ここで、ID が 1 である場合にどのオプションが選択されているかを設定したいと思います。したがって、これは一度だけ発生するはずです。だから私はこれを追加します:
SELECT
ID AS 'option/@value', Name AS [option],
CASE WHEN ID=1 THEN 'selected' ELSE '' END AS 'option/@selected',
FROM MyTable
FOR XML Path('')
出力:
<option value="1" selected="selected">Item1</option><option value="2" selected="">Item2</option>
これは技術的には正しい属性を設定しますが、ケースが true のオプションで属性 @selected のみが必要です。
正しい方向への助けや指摘は大歓迎です。