Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Молодой Member Откуда: Москва Сообщений: 180 |
Есть таблица #t с XML полемdeclare @xml_1 xml = ' <Config> <Param id="1" name="P1"></Param> <Param id="2" name="P2"></Param> </Config>' declare @xml_2 xml = ' <Config> <Param id="3" name="P3"></Param> <Param id="4" name="P4"></Param> </Config>' create table #t (id int, Config xml) insert #t (id, Config) select 1, @xml_1 union all select 2, @xml_2 Как выбрать все параметры из одной переменной - разобрался: SELECT colParam.value('@id', 'int') as idParam ,colParam.value('@name', 'varchar(50)') as nmParam FROM @xml_2.nodes('/Config/Param') col(colParam) Вопрос: как выбрать все параметры из таблицы? То есть, как получить результат: id; idParam; nmParam 1; 1; P1 1; 2; P2 2; 3; P3 2; 4; P4 |
17 янв 17, 10:09 [20113128] Ответить | Цитировать Сообщить модератору |
iljy Member Откуда: Сообщений: 8711 |
Молодой, эммм.... выбрать все параметры из одной переменной union all выбрать все параметры из другой переменной ? |
17 янв 17, 10:26 [20113212] Ответить | Цитировать Сообщить модератору |
iljy Member Откуда: Сообщений: 8711 |
Молодой, а, или имеется ввиду, что переменные в таблице? select * from #t cross apply ( выбрать все параметры из одной переменной )a |
17 янв 17, 10:28 [20113225] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
SELECT colParam.value('@id', 'int') as idParam ,colParam.value('@name', 'varchar(50)') as nmParam FROM #t t cross apply t.Config.nodes('/Config/Param') col(colParam) |
17 янв 17, 10:36 [20113284] Ответить | Цитировать Сообщить модератору |
Молодой Member Откуда: Москва Сообщений: 180 |
iljy, invm - Большое спасибо. То что надо! select t.id, a.* from #t t cross apply ( SELECT colParam.value('@id', 'int') as idParam ,colParam.value('@name', 'varchar(50)') as nmParam FROM t.Config.nodes('/Config/Param') col(colParam) )a SELECT t.id ,colParam.value('@id', 'int') as idParam ,colParam.value('@name', 'varchar(50)') as nmParam FROM #t t cross apply t.Config.nodes('/Config/Param') col(colParam) Вопрос закрыт. |
17 янв 17, 10:41 [20113323] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |