我想从保存为xml格式的0
数据类型列中导出值。
Int32?
列值如下:
nvarchar
我要从中导出nvarchar
谢谢
答案 0 :(得分:3)
如果数据是XML,那么您实际上应该使用xml
数据类型,那么这很简单。我在这里使用CONVERT
,但您应该真正修复表中的数据类型。
CONVERT(xml, YourColumn).value('(TablePhoneHome/Number/@Num)[1]','int')
不过,就像我说的那样,确实应该更改表的列数据类型:
CREATE TABLE YourTable (YourColumn nvarchar(MAX));
INSERT INTO YourTable
VALUES('<TablePhoneHome><Number Num="1111"/></TablePhoneHome>');
ALTER TABLE YourTable ALTER COLUMN YourColumn xml;
SELECT YourColumn.value('(TablePhoneHome/Number/@Num)[1]','int') AS Num
FROM YourTable;
答案 1 :(得分:0)
如果所有值都是相同的xml格式,请与replace
中的sql-server
函数一起使用。
试试这个:
select REPLACE(REPLACE('<TablePhoneHome><Number Num="1111"/></TablePhoneHome>','<TablePhoneHome><Number Num="' ,'') ,'"/></TablePhoneHome>','')