Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak usunąć rozszerzone znaki ASCII z ciągu w T-SQL?

OK, spróbuj. Wydaje się, że mają ten sam problem. W każdym razie musisz go zmodyfikować w oparciu o swoje wymagania.

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

Sprawdź to w SqlServerCentral



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać operatora logicznego EXISTS w SQL Server — samouczek SQL Server / TSQL — część 125

  2. Usuwanie wiodących zer z pola w instrukcji SQL

  3. W SQL Server, jak mogę zablokować pojedynczy wiersz w sposób podobny do Oracle SELECT FOR UPDATE WAIT?

  4. Profilowanie zapytań 101 — tak, naprawdę może poprawić wydajność serwera SQL

  5. Sprawdź, czy ciąg zawiera podciąg w SQL Server 2005, korzystając z procedury składowanej