簡體   English   中英

從以 xml 格式保存的 nvarchar 數據類型列中導出值

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

我想從以 xml 格式保存的nvarchar數據類型列中導出值。

nvarchar列值如下所示:

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

我想從中導出1111

謝謝

如果數據是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;

DB <>小提琴

如果所有值都是相同的xml格式,請與sql-server replace函數一起使用。 嘗試這個:

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