sql2000的问题

薇薇 2013-01-04 02:59:05
我数据库某表的某一个列(message)的值为(xml类型的数据)
<?xml version="1.0" encoding="UTF-8"?> <truck><message state="4" type="1"><date>2013-01-04 14:32:29</date><content>4,还是有问题,补漆没过,目前状态试车</content></message>
<truck><message state="5" type="1"><date>2013-01-04 14:32:29</date><content>5,还是有问题,没过,目前状态试车</content></message></truck>
一个列(state)的值为4

我现在要查询这一条数据

结果想为
即xml中state=该列的值4的content的内容
state message
4 4,还是有问题,补漆没过,目前状态试车


测试条件,在SQL2000中
...全文
157 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
薇薇 2013-01-05
  • 打赏
  • 举报
回复
引用 1 楼 dong_y888 的回复:
select state, case when charindex('state="'+state+'"',message)>0 then substring(message, charindex('<content>',message,charindex('state="'+state+'"',message))+9, ……
您这样的做法太死了,而且灵活性不高耶
  • 打赏
  • 举报
回复
SQL Server中可以处理xml类型吗? 记得是需要安装一个兼容性文件 才可以这样
以学习为目的 2013-01-05
  • 打赏
  • 举报
回复
解决了???
dong_y888 2013-01-04
  • 打赏
  • 举报
回复
select state, case when charindex('state="'+state+'"',message)>0 then substring(message, charindex('<content>',message,charindex('state="'+state+'"',message))+9, charindex('</content>',message,charindex('state="'+state+'"',message))- charindex('<content>',message,charindex('state="'+state+'"',message))-9 ) else '' end as message1 from table

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧