Я хочу использовать результаты из следующего, чтобы присоединиться к другим таблицам:
;with xmlnamespaces ('http://thatonecompany.com/rest/model' as ns1)
select id,
isnull(null, cast(substring(p.col.value('(./ns1:Entity/@href)[1]', 'nvarchar(max)'), 24, len(p.col.value('(./ns1:Entity/@href)[1]', 'nvarchar(max)'))) as integer)) loc_id
from MyOldXMLTable mo
cross apply mo.x.nodes('/ns1:Entities/ns1:Entity/ns1:Attribute') as p(col)
where p.col.value('@name', 'nvarchar(max)') = 'foundTheRightOne'
and mo.id < 10
Результаты:
+----+--------+
| id | loc_id |
+----+--------+
| 3 | 47 |
| 4 | 47 |
| 5 | 47 |
| 6 | 47 |
| 7 | 47 |
| 8 | 47 |
| 9 | 47 |
+----+--------+
Я надеялся, что смогу сделать что-то вроде:
select * from (
;with xmlnamespaces ('http://thatonecompany.com/rest/model' as ns1)
select id,
isnull(null, cast(substring(p.col.value('(./ns1:Entity/@href)[1]', 'nvarchar(max)'), 24, len(p.col.value('(./ns1:Entity/@href)[1]', 'nvarchar(max)'))) as integer)) loc_id
from MyOldXMLTable mo
cross apply mo.x.nodes('/ns1:Entities/ns1:Entity/ns1:Attribute') as p(col)
where p.col.value('@name', 'nvarchar(max)') = 'foundTheRightOne'
and mo.id < 10 ) as aa
... а потом присоединяйся, но нет. Я продолжаю получать синтаксические ошибки из-за; WITH и крест применяются. Кто-нибудь знает, как я должен это делать?