所以我有一个来自搜索的字符串,它可以包含多个单词,我想将单词截断为 10 个字符,即
DECLARE @SearchString varchar(255) = 'Administration Duplication'
变成:'Administra Duplicatio'
最佳答案
来自here只需少量修改:
Create Function dbo.[getFirstTenCharacters]
(
@String Varchar(Max)
)
RETURNS Varchar(Max)
BEGIN
Declare @Xml Xml
Declare @firsttenletter Varchar(Max)
Declare @delimiter Varchar(5)
SET @delimiter=' '
SET @Xml = cast(('<a>'+replace(@String,@delimiter,'</a><a>')+'</a>') AS XML)
;With CTE AS (SELECT A.value('.', 'varchar(max)') as [Column]
FROM @Xml.nodes('a') AS FN(a) )
SELECT @firsttenletter =Stuff((SELECT ' ' + LEFT([Column],10)
FROM CTE
FOR XML PATH('') ),1,0,'')
RETURN (@firsttenletter)
END
GO
SELECT dbo.[getFirstTenCharacters]('Administration Duplication');
<强> WORKING DEMO
关于sql-server - SQL Server - 带长度截断的字符串分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36333199/