正常顺序:①②③④⑤⑥⑦⑧⑨⑩??W1W2
↑
这个是正常的显示顺序
现在有 ‘⑥⑦⑧⑩??W1W2’ 这么一个字符串
也可能是 ‘W1W2’
也可能是 ‘①②③’
我怎么把 ⑨放到这个正常顺序里面去
求一个FUN()
------解决思路----------------------
CREATE FUNCTION DBO.FUN(@STR NVARCHAR(100))字符串处理不是SQL的强项
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