加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何从T-SQL中的字符串中删除扩展的ASCII字符?

发布时间:2020-12-12 08:51:55 所属栏目:MsSql教程 来源:网络整理
导读:我需要从T-SQL中的SELECT语句中过滤掉(删除)扩展的ASCII字符. 我正在使用存储过程来做到这一点. 预期输入: ????eeee???? 预期产量: eeee 我找到的是MySQL. 我在用着 : Microsoft SQL Server Management Studio 11.0.2100.60Microsoft .NET Framework 4.0.3
我需要从T-SQL中的SELECT语句中过滤掉(删除)扩展的ASCII字符.

我正在使用存储过程来做到这一点.

预期输入:

????eeee????

预期产量:

eeee

我找到的是MySQL.

我在用着 :

Microsoft SQL Server Management Studio  11.0.2100.60
Microsoft .NET Framework    4.0.30319.17929

解决方法

好的,给一个尝试.这似乎是同样的问题.无论如何,您需要根据您的要求进行修改.
CREATE FUNCTION RemoveNonASCII 
(
    @nstring nvarchar(255)
)
RETURNS varchar(255)
AS
BEGIN

    DECLARE @Result varchar(255)
    SET @Result = ''

    DECLARE @nchar nvarchar(1)
    DECLARE @position int

    SET @position = 1
    WHILE @position <= LEN(@nstring)
    BEGIN
        SET @nchar = SUBSTRING(@nstring,@position,1)
        --Unicode & ASCII are the same from 1 to 255.
        --Only Unicode goes beyond 255
        --0 to 31 are non-printable characters
        IF UNICODE(@nchar) between 32 and 255
            SET @Result = @Result + @nchar
        SET @position = @position + 1
    END

    RETURN @Result

END
GO

在SqlServerCentral查看

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读