sql >> Databáze >  >> RDS >> Sqlserver

Jak odstraním rozšířené znaky ASCII z řetězce v T-SQL?

Dobře, zkuste to. Zdá se, že mají stejný problém. Každopádně jej musíte upravit na základě vašich požadavků.

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

Podívejte se na SqlServerCentral



  1. Nelze vyřešit konflikt řazení mezi SQL_Latin1_General_CP1_CI_AS a Latin1_General_CI_AS v operaci rovná se

  2. Nejlépe 9 systémů pro správu databází pro šablony Joomla je

  3. Jak používat datový typ Postgres JSONB s JPA?

  4. Vraťte řádky, které obsahují nealfanumerické znaky na serveru SQL