【发布时间】:2017-06-12 00:19:25
【问题描述】:
给定下面的字符串
Declare @string varchar(max)='abc ___________ deffns ___ cg _ hif _______hh ihs';
这是所需的输出:(无论长度如何,每个连字符都应替换为姓氏)
abc lastname deffns lastname cg lastname hif lastname hh ihs
这里的问题是,可以有很多可变长度的Hypens(最大长度可以是
我尝试了 许多 方法,并采用以下方法解决..
select
REPLACE(REPLACE(replace(stringcol,replicate('_',20),'LASTNAME'),
replicate('_',19),'LASTNAME'),
replicate('_',18),'LASTNAME')
from table
有没有办法有效地做到这一点。欢迎任何建议
【问题讨论】:
-
所显示的字符串的输出应该是什么样的?你要替换
def之前的第一列_吗? -
@vkp:请查看更新
-
在您的示例中,您是否希望 LASTNAME 出现在 abc 和 def 之后?
-
@Tyron78:无论长度如何,每个连字符都应替换为姓氏
标签: sql sql-server tsql sql-server-2012