我试图使用SQL select查询来获取变量的值。这里没有新东西。在SQL select中获取文本+数据
SELECT p.ProductCode FROM Products_Joined AS p
但是,我想知道是否有可能前缀文本结果,如;
SELECT 'XJ' + p.ProductCode FROM Product_Joined AS p
因此,它看起来像XJ2156。我试图用预定义的文本字符串为数据添加前缀。有人知道如何做到这一点?
我试图使用SQL select查询来获取变量的值。这里没有新东西。在SQL select中获取文本+数据
SELECT p.ProductCode FROM Products_Joined AS p
但是,我想知道是否有可能前缀文本结果,如;
SELECT 'XJ' + p.ProductCode FROM Product_Joined AS p
因此,它看起来像XJ2156。我试图用预定义的文本字符串为数据添加前缀。有人知道如何做到这一点?
正确的方法是什么,你的问题说:
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
代替+你必须使用pipe ||
SELECT 'XJ' || p.ProductCode FROM Product_Joined AS p
我的错误..我张贴作为Oracle数据库语法.. :( – 2012-03-25 12:44:01
请忽略这个答案。 .. – 2012-03-25 12:44:19
不知道什么是你的代码错误。我认为ProductCode是一个int? SQL有疯狂的隐式转换规则,原因“XJ”转换成int ...解决方案:
SELECT 'XJ' + convert(nvarchar(4000), p.ProductCode) FROM Product_Joined AS p
它实际上是一个文本类型,*不要害怕尝试新的东西... * – henryaaron 2012-03-25 12:46:06
@ user1090389:我不明白“不害怕”的一部分所以没有现在为你工作。 ? – 2012-03-25 12:50:29
这是我自己的备忘录...是的,它的工作,我会尽快接受它,让它 – henryaaron 2012-03-25 12:51:08