首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >函数在字符串连接之间添加字符。

函数在字符串连接之间添加字符。
EN

Stack Overflow用户
提问于 2020-02-18 21:55:50
回答 2查看 427关注 0票数 1

在连接时是否有更简单的方法在整个字符串中添加字符?我正在考虑利用一个函数来完成这个任务,并且可以通过连接来实现它;然而,除了串联之外,还有其他的选择吗?

下面是我需要do...There的表A,它有8列,例如col1、col2、col3等等。

代码语言:javascript
运行
复制
;WITH
 TABLE_A
 AS
 (
  SELECT 'ABC' AS Col1
         , 'COM' AS Col2
         , 'SMALL' AS Col3
         , '1234' AS Col4
         , 'ABC INC.' AS Col5
         , '123456789' AS Col6
         , 'ABC Of New England' AS Col7
         , 'NC123456' AS Col8
 )
  SELECT *
  FROM TABLE_A

我需要将列中的值与每个列之间的>值连接起来。我可以按照……的方式来完成这件事。

代码语言:javascript
运行
复制
CONCAT(Col1,'>',Col2,'>',Col3,'>',Col4,'^',Col5,'>',Col6,'>',Col7,'>',Col8)

但是我需要它是动态的,因此,例如,如果Col1 - Col3有一个值,那么只能对那些连接( col1,'>',Col2,'>',‘>,Col3)进行连接,如果Col1- Col5有值,那么Col1-Col5有值(Col1,'>',Col2,'>',Col3,’>‘’,Col4,'^',Col5等等),连接应该只在有值的范围内进行.

另外,要添加另一个皱纹,而不是Col4和Col5之间的>,我需要一个胡萝卜^作为分隔符。

是否有一种不使用CONCAT的替代方法来做到这一点?也许是个循环?

EN

Stack Overflow用户

回答已采纳

发布于 2020-02-18 22:20:36

下面是一些有用的东西的例子,尽管它只有最低限度的验证来满足您的需求。

代码语言:javascript
运行
复制
;WITH
 TABLE_A
 AS
 (
  SELECT 'ABC' AS Col1
         , 'COM' AS Col2
         , 'SMALL' AS Col3
         , '1234' AS Col4
         , 'ABC INC.' AS Col5
         , '123456789' AS Col6
         , 'ABC Of New England' AS Col7
         , 'NC123456' AS Col8

 )
  SELECT ConcentenatedString = ISNULL(('>' + NULLIF(a.Col1,'')),'')
        +ISNULL(('>' + NULLIF(a.Col2,'')),'')
        +ISNULL(('>' + NULLIF(a.Col3,'')),'')
        +ISNULL(('>' + NULLIF(a.Col4,'')),'')
        +ISNULL(('^' + NULLIF(a.Col5,'')),'')
        +ISNULL(('>' + NULLIF(a.Col6,'')),'')
        +ISNULL(('>' + NULLIF(a.Col7,'')),'')
        +ISNULL(('>' + NULLIF(a.Col8,'')),'')
  FROM TABLE_A a

NULLIF用于将空字符串转换为NULL,以便在连接到NULL时消除分隔符。然后将这些空值转换回空白,以防止字符串的其余部分被删除。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60289991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档