在SQL select中获取文本+数据

时间:2012-03-25 12:38:05

标签: sql sql-server sql-server-2005 select

我正在尝试使用SQL select查询获取变量的值。这里没什么新鲜的。

SELECT p.ProductCode FROM Products_Joined AS p

但是,我想知道是否可以将文本添加到该结果前面,例如;

SELECT 'XJ' + p.ProductCode FROM Product_Joined AS p

所以它看起来像 XJ2156 。我正在尝试使用预定义的文本字符串为数据添加前缀。有人知道如何做到这一点吗?

3 个答案:

答案 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为文字类型(varcharnvarchar ...)时才会有效。 如果是数字,则必须先将其转换为文本:

SELECT 'XJ' + CAST(p.ProductCode AS varchar(30)) FROM Product_Joined AS p