回答

收藏

SQL:如何获取XML数据类型中的属性的值?

技术问答 技术问答 79 人阅读 | 0 人回复 | 2023-09-13

我的数据库中有以下xml:( H9 P( {4 y- Q% C* c* [

; m2 x( n8 a2 G% }$ N+ Z2 f/ t4 t; ^  
/ u6 e. t0 M/ J
  G5 H4 F, R" Z+ p% {& F, r$ |" V我现在使用的是这样的东西:但是仍然必须找到属性值。' K3 \2 ^. @- O3 Y' N8 @! I
SELECT convert(xml,m.Body).query('/Email/Account')9 \' k- ]9 }5 W) g
FROM Mail+ Q# M& I+ ^* f5 ^
如何language在使用SQL的select语句中获取属性的值?- K, B" ~' x( G% V) I% d- Z
               
1 d7 z( p& S' c1 F! k3 V3 H" V解决方案:
* ~9 P2 L+ ?  n' U                ! ~) u- ~2 p' R
9 i9 m' ^  ?1 \- b$ k7 [
0 E3 k0 Y; S' l! e( w
                使用XQuery:$ |% d9 S' ^0 J3 M- z2 r0 g
declare @xml xml =
5 o6 ]& e4 k) Z2 o! `* v  s'$ L% d, f1 _5 V& [( S" s5 n
  5 e' L, P8 |8 _$ J
'6 L9 z) }' R+ }- o+ ?6 b
select @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')' W. Q4 c) J: P2 }' L+ q7 {/ h
, a* _, g( z4 A! \( I
declare @t table (m xml)
# p9 Y6 v0 u% D1 Finsert @t values 1 D7 r) [- |5 V" R* x0 }/ z1 \
    (''),
$ d' ]' `# ]& V    ('')
) P+ g4 Y" `) N$ x7 m- {select m.value('(/email/account/@language)[1]', 'nvarchar(max)')0 \7 y% e; p& b+ B) _) r) f
from @t
8 N1 R2 y4 y2 x" ~. G输出:7 K: @. p0 n+ c9 z
en: z1 r* K! Y/ U1 F6 V' L* A
fr
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则