2012-03-25 72 views
0

我试图使用SQL select查询来获取变量的值。这里没有新东西。在SQL select中获取文本+数据

SELECT p.ProductCode FROM Products_Joined AS p 

但是,我想知道是否有可能前缀文本结果,如;

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

因此,它看起来像XJ2156。我试图用预定义的文本字符串为数据添加前缀。有人知道如何做到这一点?

回答

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 
+0

它实际上是一个文本类型,*不要害怕尝试新的东西... * – henryaaron 2012-03-25 12:46:06

+0

@ user1090389:我不明白“不害怕”的一部分所以没有现在为你工作。 ? – 2012-03-25 12:50:29

+0

这是我自己的备忘录...是的,它的工作,我会尽快接受它,让它 – henryaaron 2012-03-25 12:51:08

0

代替+你必须使用pipe ||

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

我的错误..我张贴作为Oracle数据库语法.. :( – 2012-03-25 12:44:01

+0

请忽略这个答案。 .. – 2012-03-25 12:44:19

1

不知道什么是你的代码错误。我认为ProductCode是一个int? SQL有疯狂的隐式转换规则,原因“XJ”转换成int ...解决方案:

SELECT 'XJ' + convert(nvarchar(4000), p.ProductCode) FROM Product_Joined AS p