【问题标题】:Build <options> tags with FOR XML Path in SQL. Remove unwanted Attributes在 SQL 中使用 FOR XML Path 构建 <options> 标记。删除不需要的属性
【发布时间】:2012-02-24 12:04:41
【问题描述】:

可能是一个非常简单的问题要回答,但我一辈子都找不到它。

我希望使用 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>

虽然这在技术上确实设置了正确的属性,但我只需要在 case 为真的选项上使用属性 @selected。

任何帮助或指向正确方向的建议都会受到欢迎。

【问题讨论】:

    标签: sql for-xml-path


    【解决方案1】:

    不要在你的case语句中使用空字符串,而是返回一个Null

    选择 ID AS 'option/@value', CASE WHEN ID=1 THEN 'selected' ELSE null END AS 'option/@selected', 名称 AS [选项] 从我的表 FOR XML 路径('')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-28
      • 2019-08-11
      • 2011-09-21
      • 2016-07-29
      • 1970-01-01
      相关资源
      最近更新 更多