我正在尝试找出此查询的正确语法
CASE WHEN SH10.SHIP_VIA_CODE1 IN ('01','02','03','05','42','44','46')
THEN '<a href="http://wwwapps.ups.com/WebTracking/track?track=yes&trackNums='
+ RTRIM(LTRIM(CRC_VW_SH10_B.WAYBILL_NUMB))
+ '">CRC_VW_SH10_B.WAYBILL_NUMB</a>'
ELSE CRC_VW_SH10_B.WAYBILL_NUMB
END AS [{TrackingNumb}]
我要求链接中的CRC_VW_SH10_B.WAYBILL_NUMB不是字符串的一部分,但在尝试在结束标记之前放置单引号时,我一直收到错误。
答案 0 :(得分:1)
我很确定,您的列WAYBILL_NUMB
不是字符串类型,而是某种数字类型。您必须强制转换它才能使用+
连接。
由于字符转义,在字符串基础上创建XML或(X)HTMML通常不是一个好主意。为此使用FOR XML
要好得多:
THEN
(
SELECT 'http://wwwapps.ups.com/WebTracking/track?track=yes&trackNums=' + RTRIM(LTRIM(CAST(CRC_VW_SH10_B.WAYBILL_NUMB AS VARCHAR(100)))) AS [a/@href]
,'CRC_VW_SH10_B.WAYBILL_NUMB' AS a FOR XML PATH(''),TYPE
)