我有个表T1
字段C 是XML类型 有以下2条记录
c
--------------------
<ROWDATA><Id>JS20060828938861015</Id><BuyerOpLoginId>1</BuyerOpLoginId></ROWDATA>
<ROWDATA><Id>JS20060828939247015</Id><BuyerOpLoginId>2</BuyerOpLoginId></ROWDATA>现在想通过达到以下结果
id BuyerOpLoginId
------------------------
JS20060828938861015 1
JS20060828939247015 2我用select c.value('(/ROWDATA/@id)[1]','varchar(50)') as id, c.value('(/ROWDATA/@BuyerOpLoginId)[1]','varchar(50)') as BuyerOpLoginId from t1
好象不对显示是空值
字段C 是XML类型 有以下2条记录
c
--------------------
<ROWDATA><Id>JS20060828938861015</Id><BuyerOpLoginId>1</BuyerOpLoginId></ROWDATA>
<ROWDATA><Id>JS20060828939247015</Id><BuyerOpLoginId>2</BuyerOpLoginId></ROWDATA>现在想通过达到以下结果
id BuyerOpLoginId
------------------------
JS20060828938861015 1
JS20060828939247015 2我用select c.value('(/ROWDATA/@id)[1]','varchar(50)') as id, c.value('(/ROWDATA/@BuyerOpLoginId)[1]','varchar(50)') as BuyerOpLoginId from t1
好象不对显示是空值
select c.value('(/ROWDATA/Id)[1]','varchar(50)') as id,
c.value('(/ROWDATA/BuyerOpLoginId)[1]','varchar(50)') as BuyerOpLoginId
from t1因为你的ID和BuyerOpLoginId都是ROWDATA的子元素,不是属性,所以不需要加@。
还有,XML是区分大小写的。
而且看起来很不习惯!
期待下一个版本的BOL吧~~~
还有,XML是区分大小写的。
------------------------------
我靠 那我原来写的对的 我一直在实验各种方法 到忘记大小写了
因为SQL2000中很少有区分大小写这个说法的~~