从SQL Server中的给定字符串获取唯一字符 [英] Get Distinct characters from a given string in sql server

查看:103
本文介绍了从SQL Server中的给定字符串获取唯一字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要一个T-SQL函数,用于删除给定字符串中的重复字符

i need a T-SQL function that remove duplicate charcters in a give String

例如Fn_Remove('AVGHAHA')它将返回AVGH

for exemple Fn_Remove('AVGHAHA') it will returns AVGH

推荐答案

使用>code> NGrams8K ,您可以将字符串拆分为单个字符令牌",将数字应用于该字符集,然后仅使用每个字符的第一个进行重建:

Using NGrams8K, you can split the string into individual character "tokens", apply a number to that character set, and then rebuild with only the first of each character:

WITH CTE AS(
    SELECT V.S,
           N.position,
           N.token,
           ROW_NUMBER() OVER (PARTITION BY N.token ORDER BY N.position) AS RN
    FROM (VALUES('AVGHAHA'))V(S)
         CROSS APPLY dbo.NGrams8k(V.S,1) N)
SELECT V.S,
       (SELECT '' + C.token
        FROM CTE C
        WHERE C.S = V.S
          AND C.RN = 1
        ORDER BY C.position
        FOR XML PATH('')) AS Replaced
FROM (VALUES('AVGHAHA'))V(S);

这篇关于从SQL Server中的给定字符串获取唯一字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆