简体   繁体   English

从以 xml 格式保存的 nvarchar 数据类型列中导出值

[英]Export value from nvarchar datatype column that saved like xml format

I want to export value from nvarchar datatype column that saved like xml format.我想从以 xml 格式保存的nvarchar数据类型列中导出值。

The nvarchar column value looks like this: nvarchar列值如下所示:

<TablePhoneHome><Number Num="1111"/></TablePhoneHome>

I want to export 1111 from that我想从中导出1111

Thanks谢谢

If the data is XML, you should really be using the xml data type, then this is trivial. 如果数据是XML,那么您实际上应该使用xml数据类型,那么这是微不足道的。 I use CONVERT here, but you should really fix the data type in your table. 我在这里使用CONVERT ,但是您应该真正修复表中的数据类型。

CONVERT(xml, YourColumn).value('(TablePhoneHome/Number/@Num)[1]','int')

Like I said though, really you should change your table's column data type: 就像我说的那样,实际上您应该更改表的列数据类型:

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;

DB<>Fiddle DB <>小提琴

if all of the values is same xml format, use with replace function in sql-server . 如果所有值都是相同的xml格式,请与sql-server replace函数一起使用。 try this: 尝试这个:

select  REPLACE(REPLACE('<TablePhoneHome><Number Num="1111"/></TablePhoneHome>','<TablePhoneHome><Number Num="' ,'') ,'"/></TablePhoneHome>','')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM