【发布时间】:2017-06-10 17:05:56
【问题描述】:
declare @X XML=
'<Detail>
<Gender>M</Gender>
</Detail>'
我想查询上面的简单 XML,我想计算性别标签中存在的值
如果它的值为“M”,那么我想取回结果为 1
否则,如果它的值为“F”,那么我想取回结果为 2
否则返回 0
我们可以通过使用以下查询将性别值返回为 M 轻松完成此操作
SELECT
@X.value('(Detail/Gender)[1]', 'varchar') as Gender
然后存储在一个局部变量中,然后使用条件语句计算相应的返回值。
从 XML 本身获取时有什么办法吗?
我的意思是在从@x 本身中选择性别时,我们必须使用条件语句来返回最终值(即 1 或 2 或 3)
这也有助于消除局部变量/查询成本,这可以在单个 Fetch 中完成
以下将是我必须从单个查询中获取的所需结果
Gender
1
【问题讨论】: