我如何在 SQL 2008 中执行 concat()

How can i do a concat() in SQL 2008

我有这个声明,它适用于 SQL Server 2017:

REPLACE(CONCAT(NOM_TIPO_QUEBRA_ORDEM, CHAR(13), DSC_TIPO_QUEBRA_ORDEM, CHAR(13), HST_ORDEM_FILA_MOVIMENTO), CHAR(13) + CHAR(13), '') as justificativa_quebra

如何在不支持 CONCAT 的 SQL Server 2008 中执行同样的操作?

REPLACE(SELECT NOM_TIPO_QUEBRA_ORDEM, CHAR(13) + DSC_TIPO_QUEBRA_ORDEM, CHAR(13) + HST_ORDEM_FILA_MOVIMENTO), CHAR(13) + CHAR(13), '' as justificativa_quebra

CONCAT(a,b,c) 基本上只是 COALESCE(RTRIM(a),'') + COALESCE(RTRIM(b),'') + COALESCE(RTRIM(c),'') (example).

的语法糖

所以:

REPLACE
(
   CONCAT
   (
     NOM_TIPO_QUEBRA_ORDEM, CHAR(13),
     DSC_TIPO_QUEBRA_ORDEM, CHAR(13), 
     HST_ORDEM_FILA_MOVIMENTO
   ),  
CHAR(13) + CHAR(13), '') as justificativa_quebra

变成:

REPLACE(
    COALESCE(RTRIM(NOM_TIPO_QUEBRA_ORDEM),'') + char(13)
  + COALESCE(RTRIM(DSC_TIPO_QUEBRA_ORDEM),'') + char(13)
  + COALESCE(RTRIM(HST_ORDEM_FILA_MOVIMENTO), ''), 
CHAR(13) + CHAR(13), '') as justificativa_quebra

接下来,向链上发送一些反馈,即使用众所周知的不受支持的数据库平台并不是一个好主意。