问题描述
我的查询返回:
我需要跳过下表中没有数据的行
SELECT
ps.person_num,q1.r1.value(‘.’,’varchar(50)') as id,q2.r2.value(‘.’,'varchar(50)’)) as name
FROM
persons ps
CROSS APPLY
(SELECT CAST(SELECT CAST(sd.data AS xml)) AS p1(p1))
CROSS APPLY
p1.p1.nodes(‘/person_data/person_id’) q1(r1)
CROSS APPLY
p1.p1.nodes(‘/person_data/person_name’) q2(r2)
Persons
表有两列:
Person_num data (text column)
1 <?xml version="1.0" encoding="UTF-8"?> <person_data>
<person_id>52<person_id/> <person_name>varna</person_name> </person_data >
2 <?xml version="1.0" encoding="UTF-8"?><?>?</?>
3 <?xml version="1.0" encoding="UTF-8"?> <person_data > <person_id>53<person_id/>
<person_name>mala</person_name></ person_data >
4 <?xml version="1.0" encoding="UTF-8"?> < person_data > <person_id>54<person_id/>
<person_name>nayan</person_name> </person_data >
5 <?xml version="1.0" encoding="UTF-8"?><?>?</?>
6 <?xml version="1.0" encoding="UTF-8"?> < person_data > <person_id>55<person_id/>
<person_name>tara</person_name></person_data >
7 <?xml version="1.0" encoding="UTF-8"?> < person_data > <person_id>56<person_id/>
<person_name>janu</person_name> </person_data >
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)