2014-02-17 37 views
1

我需要從一個Sql Server中的字段值中讀取一個文件地址我認爲使用SUBSTRING但是SUBSTRING需要啓動索引和長度但是在我的字段值中長度是不同的。如何將一個Nvarchar值從一個單詞到另一個單詞在Sql Server中

一個例子我提起價值

 <Border BorderThickness="0,0,0,0" CornerRadius="5,5,5,5" Name="_mainBlockBorder" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"><Canvas Name="_contentCanvas" Margin="1,1,1,1"><Border Width="202.608503937008" Height="205.148346456693"><Image Source="file:///W:/New folder (2)/8/PAYAM.tif" Stretch="Fill" Tag="W:\New folder (2)\8\PAYAM.tif" /></Border></Canvas></Border> 

,並導致我需要:W:\新建文件夾(2)\ 8 \ PAYAM.tif從屬性標籤在圖片的HTML標記。 我需要這個字由SQL Server查詢

謝謝

回答

1

這應該爲你工作:

SELECT LEFT(RIGHT(@text, LEN(@text) - CHARINDEX('Tag="', @text) - 4), CHARINDEX('"', RIGHT(@text, LEN(@text) - CHARINDEX('Tag="', @text) - 4 - 1))) 

到位@Text的用你的實際的列名。

0

試試這個,

Declare @j nvarchar(max) 

set @j='<Border BorderThickness="0,0,0,0" CornerRadius="5,5,5,5" Name="_mainBlockBorder" ><Canvas Name="_contentCanvas" Margin="1,1,1,1"><Border Width="202.608503937008" Height="205.148346456693"><Image Source="file:///W:/New folder (2)/8/PAYAM.tif" Stretch="Fill" Tag="W:\New folder (2)\8\PAYAM.tif" /></Border></Canvas></Border>' 
Declare @i [email protected] 
SELECT 
@i.value('(/Border/Canvas/Border/Image/@Tag)[1]', 'nvarchar(max)') as TagValue 
相關問題