当前位置: 代码迷 >> Sql Server >> SQL Server字符串拼接,该怎么解决
  详细解决方案

SQL Server字符串拼接,该怎么解决

热度:75   发布时间:2016-04-24 09:34:41.0
SQL Server字符串拼接
本帖最后由 amazingxue 于 2014-12-11 16:52:02 编辑
正常顺序:①②③④⑤⑥⑦⑧⑩??W1W2

这个是正常的显示顺序
现在有 ‘⑥⑦⑧⑩??W1W2’ 这么一个字符串 
也可能是 ‘W1W2’
也可能是 ‘①②③’
我怎么把 ⑨放到这个正常顺序里面去
求一个FUN()
------解决思路----------------------
CREATE FUNCTION DBO.FUN(@STR NVARCHAR(100))  
RETURNS NVARCHAR(100)  
AS  
BEGIN
DECLARE @S NVARCHAR(100)
SET @S=N'①②③④⑤⑥⑦⑧⑨⑩??W1W2'
WHILE PATINDEX(N'%[^'+@STR+'⑨'+']%',@S) > 0  
BEGIN
SET @S=STUFF(@S,PATINDEX(N'%[^'+@STR+'⑨]%',@S),1,'')
END
SET @S=REPLACE(@S,'WW2','W2')
IF CHARINDEX('2',@S)=0
SET @S=REPLACE(@S,'W1W','W1')
RETURN @S
END  
GO 
;WITH TB(col)AS(
SELECT N'⑥⑦⑧⑩??W1W2'
UNION ALL SELECT N'W1W2'
UNION ALL SELECT N'①②③'
)
SELECT DBO.FUN(col)FROM TB
字符串处理不是SQL的强项
  相关解决方案