可能是一个非常简单的问题要回答,但我一生都无法在任何地方找到它。
我正在寻找使用 FOR XML Path 从数据库中构建选择列表选项。到目前为止,我有这个:
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>
虽然这在技术上确实设置了正确的属性,但我只需要在 case 为真的选项上使用属性 @selected。
任何帮助或指向正确方向的东西都会受到极大的欢迎。