【问题标题】:How to concatenate a string, an integer and a sequence in SQL Server 2014如何在 SQL Server 2014 中连接字符串、整数和序列
【发布时间】:2014-10-04 02:14:27
【问题描述】:

我需要连接一个固定字符串、一个整数变量和一个序列。我不确定如何在 SQL Server 2012 中执行此操作。我已经能够在 PostgreSQL 中实现相同的功能,但任何人都可以帮助我在 SQL Server 中执行相同的操作。

我试过这段代码:

FORMAT((NEXT VALUE FOR dtr_seq),('DTR'++@lc_org_unit_id));

但它给出了错误提示: 消息 8116,级别 16,状态 1,过程 sp_dtr,第 27 行 参数数据类型 int 对格式函数的参数 2 无效。

我在PostgreSQL中使用的代码是这样的:

SELECT ('DTR'||lc_org_unit_id||nextval('ccdb.dtr_seq');

我期待的结果是这样的:

DTR46361002

请建议我如何在 SQL Server 2012 中实现同样的功能

【问题讨论】:

  • 我想你想要的是 CONCAT 函数,而不是 FORMAT - CONCAT('DTR', @lc_org_unit_id, (NEXT VALUE FOR dtr_seq));
  • @GarethD 谢谢……这就是我要找的……

标签: sql-server sql-server-2012 concatenation sequence


【解决方案1】:

这里是 2012 年的函数。SELECT CONCAT('DTR',lc_org_unit_id,nextval('ccdb.dtr_seq'))。 MSSQL 2012 大部分时间都会处理从 char 到 int 的转换。

【讨论】:

    【解决方案2】:
    SELECT 'DTR' + CAST((NEXT VALUE FOR dtr_seq)  AS VARCHAR(20)) 
           + CAST(@lc_org_unit_id  AS VARCHAR(20)) 
    

    【讨论】:

    • 这是 SQL Server 2012 之前的旧方法,但仍然像魅力一样工作,CONCAT 功能仅在 2012 及更高版本中可用。
    • 是的。我使用的是 SQL Server 2012。
    • 没关系,那么你可以做任何一种方式。
    猜你喜欢
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多