我正在尝试使用SQL select查询获取变量的值。这里没什么新鲜的。
SELECT p.ProductCode FROM Products_Joined AS p
但是,我想知道是否可以将文本添加到该结果前面,例如;
SELECT 'XJ' + p.ProductCode FROM Product_Joined AS p
所以它看起来像 XJ2156 。我正在尝试使用预定义的文本字符串为数据添加前缀。有人知道如何做到这一点吗?
答案 0 :(得分:1)
不确定您的代码有什么问题。我假设ProductCode是一个int? SQL有疯狂的隐式转换规则,导致'XJ'转换为int ...解决方案:
SELECT 'XJ' + convert(nvarchar(4000), p.ProductCode) FROM Product_Joined AS p
答案 1 :(得分:0)
代替+你必须使用pipe ||
SELECT 'XJ' || p.ProductCode FROM Product_Joined AS p
答案 2 :(得分:0)
正确的方法正是您在问题中所说的:
SELECT 'XJ' + p.ProductCode FROM Product_Joined AS p
请注意,只有ProductCode
为文字类型(varchar
,nvarchar
...)时才会有效。
如果是数字,则必须先将其转换为文本:
SELECT 'XJ' + CAST(p.ProductCode AS varchar(30)) FROM Product_Joined AS p