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

How do I remove extended ASCII characters from a string in T-SQL?(如何从 T-SQL 中的字符串中删除扩展的 ASCII 字符?)
本文介绍了如何从 T-SQL 中的字符串中删除扩展的 ASCII 字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要从 T-SQL 的 SELECT 语句中过滤掉(删除)扩展的 ASCII 字符.

我正在使用存储过程来执行此操作.

预期输入:

ËËËËeeeeËËËË

预期输出:

eeee

我发现的所有内容都适用于 MySQL.>

我正在使用:

Microsoft SQL Server Management Studio 11.0.2100.60微软 .NET 框架 4.0.30319.17929

解决方案

好的,试试这个.他们似乎有同样的问题.无论如何,您需要根据您的要求对其进行修改.

CREATE FUNCTION RemoveNonASCII(@nstring nvarchar(255))返回 varchar(255)作为开始声明@Result varchar(255)SET @Result = ''声明@nchar nvarchar(1)声明 @position int设置@位置 = 1而@position <= LEN(@nstring)开始SET @nchar = SUBSTRING(@nstring, @position, 1)--Unicode &ASCII 从 1 到 255 是相同的.--只有Unicode超过255--0 到 31 是不可打印的字符如果 UNICODE(@nchar) 介于 32 和 255 之间SET @Result = @Result + @ncharSET @position = @position + 1结尾返回@Result结尾去

在 SqlServerCentral

中查看

I need to filter out (remove) extended ASCII characters from a SELECT statement in T-SQL.

I'm using a stored procedure to do so.

Expected input:

ËËËËeeeeËËËË

Expected output:

eeee

All that I've found is for MySQL.

I'm using :

Microsoft SQL Server Management Studio  11.0.2100.60
Microsoft .NET Framework    4.0.30319.17929

解决方案

OK, give this a try. It seems the same issue they have. Anyway you need to modify it based on your requirements.

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

Check it out at SqlServerCentral

这篇关于如何从 T-SQL 中的字符串中删除扩展的 ASCII 字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)