2014-08-27 2 views
0

У меня есть HTML в моей таблице базы данных, которая имеет следующий форматизвлечения текста из HTML с SQL

<img style='border-style: none' src='../Images/flag_Green.gif' onmouseover='ddrivetip("<table  border=1 cellpadding=1 width=100%><tr><th nowrap width=20%>My Status</th><th>My Details</th></tr><tr><td>Green</td><td>Compliant - 06-0907370</td></tr></table>", 400, null, this);' onmouseout='hideddrivetip(this)'></img> 

Мне нужно извлечь значение цвета из этого, например, в этом случае это «зеленый» Может ли кто-нибудь помочь мне написать функцию, которая может извлечь это? Это между первым тегом td

+6

Попробуйте использовать мощность PATINDEX и SUBSTRING. Если ваш код не работает, отправьте его здесь для получения помощи. –

+0

Будет ли работа Fuction в этом сценарии? – InTheWorldOfCodingApplications

+0

В этом случае STUFF не будет полезен. –

ответ

1

Довольно просто использовать SUBSTRING и PATINDEX, как это предлагает Tab Alleman. Вот один из способов сделать это.

declare @String varchar(1000) = '<img style=''border-style: none'' src=''../Images/flag_Green.gif'' onmouseover=''ddrivetip("<table  border=1 cellpadding=1 width=100%><tr><th nowrap width=20%>My Status</th><th>My Details</th></tr><tr><td>Green</td><td>Compliant - 06-0907370</td></tr></table>", 400, null, this);'' onmouseout=''hideddrivetip(this)''></img>' 

select SUBSTRING(@String, patindex('%<td>%', @String) + 4, patindex('%</td>%', @String) - patindex('%<td>%', @String) - 4) 
+0

У меня есть зеленый, красный и янтарный. Он выбрасывает следующее исключение Параметр недопустимой длины передается функции LEFT или SUBSTRING. – InTheWorldOfCodingApplications

+0

Так что играйте с ним немного. Я не вижу ваш экран или не знаю, каковы ваши данные. Эти ошибки предполагают, что у всех ваших данных нет подстроки . –

+0

Работал, в нескольких случаях было пустое пространство. Большое спасибо – InTheWorldOfCodingApplications

Смежные вопросы