Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не получается использовать FOR XML в CROSS APPLY  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
DECLARE @Table TABLE ([ObjectName] NVarchar(256), [ParName] varchar(255), [ParValue] SQL_Variant) 
INSERT INTO @Table VALUES ('Object1','Date',CAST('20130501' AS Datetime)) 
INSERT INTO @Table VALUES ('Object1','Flag',CAST(1 AS Bit)) 
INSERT INTO @Table VALUES ('Object2','Filter',CAST(' AND 1 = 1 ' AS Varchar(30))) 


SELECT 
  ST.[ObjectName], 
  CA.* 
FROM @Table ST CROSS APPLY ( 
               SELECT K.[ParName] 
               FROM @Table K  
               WHERE K.[ObjectName] = ST.[ObjectName]  FOR XML RAW 
               ) CA 

Msg 8155, Level 16, State 2, Line 9
No column was specified for column 1 of 'CA'.
23 май 13, 18:37    [14340559]     Ответить | Цитировать Сообщить модератору
 Re: Не получается использовать FOR XML в CROSS APPLY  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
SELECT 
  ST.[ObjectName], 
  CA.* 
FROM @Table ST CROSS APPLY ( 
               SELECT K.[ParName]
               FROM @Table K  
               WHERE K.[ObjectName] = ST.[ObjectName]  FOR XML raw
               ) CA (a)
23 май 13, 18:48    [14340598]     Ответить | Цитировать Сообщить модератору
 Re: Не получается использовать FOR XML в CROSS APPLY  [new]
Гость333
Member

Откуда:
Сообщений: 3683
SELECT 
  ST.[ObjectName], 
  CA.MyXml
FROM @Table ST CROSS APPLY ( SELECT (
               SELECT K.[ParName], K.ParValue
               FROM @Table K  
               WHERE K.[ObjectName] = ST.[ObjectName]  FOR XML RAW ) AS MyXml
               ) CA 
23 май 13, 18:49    [14340602]     Ответить | Цитировать Сообщить модератору
 Re: Не получается использовать FOR XML в CROSS APPLY  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Супер! А я вот так сделал (просто для истории)

SELECT 
  ST.[ObjectName], 
  CA.* 
FROM @Table ST CROSS APPLY ( SELECT [Z] = (
               SELECT K.[ParName] 
               FROM @Table K  
               WHERE K.[ObjectName] = ST.[ObjectName]  FOR XML RAW ) 
               ) CA 
23 май 13, 18:53    [14340618]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить