【发布时间】:2020-06-03 00:16:02
【问题描述】:
有没有更简单的方法在连接时在整个字符串中添加字符?我正在考虑利用一个函数来做到这一点,并且可以通过连接来实现它;但是,除了串联之外,还有其他方法可以做到吗?
这是我需要做的...表 A 有 8 列,例如 col1、col2、col3 等。
;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
我需要将列中的值与每列之间的 > 连接起来。我可以通过做一些类似的事情来做到这一点......
CONCAT(Col1,'>',Col2,'>',Col3,'>',Col4,'^',Col5,'>',Col6,'>',Col7,'>',Col8)
但我需要它是动态的,例如,如果 col1 - Col3 有一个值,那么连接必须仅针对那些 CONCAT(Col1,'>',Col2,'>',Col3) 并且如果 Col1 - Col5 有值然后 CONCAT(Col1,'>',Col2,'>',Col3,'>',Col4,'^',Col5) 等等,连接应该只在有值的情况下进行。
还要添加另一个皱纹,而不是 Col4 和 Col5 之间的 >,我需要一个胡萝卜 ^ 作为分隔符。
有没有不使用 CONCAT 的替代方法?也许是一个循环?
【问题讨论】:
标签: sql sql-server tsql sql-server-2014 string-concatenation