Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để xóa các ký tự ASCII mở rộng khỏi một chuỗi trong T-SQL?

OK, hãy thử cái này. Có vẻ như họ có cùng một vấn đề. Dù sao thì bạn cũng cần phải sửa đổi nó dựa trên yêu cầu của bạn.

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

Kiểm tra nó tại 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. Giao dịch phân tán trên máy chủ được liên kết giữa máy chủ sql và mysql

  2. Làm cách nào để liệt kê tất cả các cột trong một bảng?

  3. Cơ sở dữ liệu là gì, Tại sao lại là Cơ sở dữ liệu?

  4. Làm thế nào để nâng cấp DataFrame của gấu trúc vào bảng Microsoft SQL Server?

  5. Lấy các cột cơ bản của một chế độ xem dựa trên tập hợp kết quả của nó