2012-11-26 3 views
-1

Мне нужно подстроить столбец xml в первый раз. Ниже приведена одна строка из столбца xml. Мне нужно подстроить на DRN, Date, Amount. Иногда в одной строке может быть более одного экземпляра. как я подстрою это?Подставляя столбцы XML

<ITEMS><ITEM SEQ="0" INDNO="50814" DRN="N00230000004816012012" CR_GUID="FB64CD73-8048-4775-81F2-969AE2AB442C" DR_GUID="8025D121-E3B6-4479-A393-CDDC5BEB53C0" CR_ACC="" DR_ACC="" AMOUNT="0" DATE="20120202" /></ITEMS> 

спасибо.

+0

Можете ли вы рассмотреть переделки ваш вопрос более ясным и использовать более точную терминологию? –

+0

Привет, мне нужно только получить, например, номер: N00230000004816012012 из столбца xml. Но у меня есть экземпляры, где DRN = число может встречаться более одного раза в одной строке, и мне нужно отображать оба в отчете. Я не уверен, как подстроить мой SQL-запрос, чтобы получить это. Я могу получить его, если это произойдет только один раз. это первый раз, когда я должен сделать такую ​​подстроку. – user1854183

ответ

0

Вы не используете substring использовать xml Data Type Methods

SQL Fiddle

сервера Настройка MS SQL 2008 схемы:

create table YourTable 
(
    XMLColumn xml 
) 

insert into YourTable values 
('<ITEMS><ITEM SEQ="0" INDNO="50814" DRN="N00230000004816012012" CR_GUID="FB64CD73-8048-4775-81F2-969AE2AB442C" DR_GUID="8025D121-E3B6-4479-A393-CDDC5BEB53C0" CR_ACC="" DR_ACC="" AMOUNT="0" DATE="20120202" /></ITEMS>') 

запроса 1:

select I.N.value('@DRN', 'varchar(50)') as DRN 
from YourTable as T 
    cross apply T.XMLColumn.nodes('/ITEMS/ITEM') as I(N) 

Results:

|     DRN | 
------------------------- 
| N00230000004816012012 | 
+0

Ты мой герой !!!!! Спасибо большое. – user1854183

+0

Привет, может просто попросить еще одну вещь, хочу ли я видеть для примера AMOUNT = "0" AND Date = "201202020" Я использую тот же синтаксис? – user1854183

+0

@ user1854183 вы просто расширяете список полей 'I.N.value ('@ AMOUNT', 'money') как Amount' и т. Д. –

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