我试图显示列名以及该列中的数据,但由于以下错误而无法显示:
Msg 402,Level 16,State 1,Line 5
数据类型xml和varchar在add运算符中不兼容。
Convert
或Cast
在这种情况下不起作用。
代码:
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
答案 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'