【问题标题】:Get text + data in SQL selectSQL select中获取文本+数据
【发布时间】:2012-04-09 05:59:48
【问题描述】:

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

SELECT p.ProductCode FROM Products_Joined AS p

但是,我想知道是否可以在该结果中添加前缀,例如:

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

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

【问题讨论】:

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


    【解决方案1】:

    不确定您的代码有什么问题。我假设 ProductCode 是一个 int? SQL 有疯狂的隐式转换规则,导致 'XJ' 被转换为 int... 解决方案:

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

    【讨论】:

      【解决方案2】:

      正确的方法正是你在问题中所说的:

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

      请注意,这仅适用于 ProductCode 是文本类型(varcharnvarchar...)。
      如果是数字,则必须先将其转换为文本:

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

      【讨论】:

      • 其实是文本类型,不要害怕尝试新事物...
      • @user1090389:我没有得到“不要害怕”的部分。那么它现在对你有用吗?
      • 这是给我自己的备忘录...是的,它奏效了,我会尽快接受
      【解决方案3】:

      你必须使用管道 || 代替 +

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

      【讨论】:

      • 我的错误..我发布的是oracle数据库语法.. :(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 2019-10-05
      • 1970-01-01
      相关资源
      最近更新 更多