为什么数据类型xml和varchar在add运算符中不兼容

时间:2014-10-21 11:01:56

标签: sql sql-server xml varchar

我试图显示列名以及该列中的数据,但由于以下错误而无法显示:

  

Msg 402,Level 16,State 1,Line 5
  数据类型xml和varchar在add运算符中不兼容。

ConvertCast在这种情况下不起作用。

代码:

select  
   CUSTOMER_ID,
   CURRENCY,
   DELIVERY_METHOD,
   CASE WHEN (COURIER_TRACKING_XML) IS NOT NULL 
          THEN dbo.GetXml(COURIER_TRACKING_XML) + 'Courier' 
   END,
   CASE WHEN BILLING_ADDRESS IS NOT NULL 
          THEN dbo.GetXml(BILLING_ADDRESS) + 'Billing' 
   END,
   CASE WHEN DELIVERY_ADDRESS IS NOT NULL
           THEN dbo.GetXml(DELIVERY_ADDRESS) + 'Delivery' 
   END
from 
   WEB_ORDERS

1 个答案:

答案 0 :(得分:0)

使用CONVERT(VARCHAR(MAX), col)将XML值转换为varchar。

   CASE WHEN (COURIER_TRACKING_XML) IS NOT NULL 
          THEN CONVERT(VARCHAR(MAX),dbo.GetXml(COURIER_TRACKING_XML)) + 'Courier'