sql >> Base de Datos >  >> RDS >> Sqlserver

Servidor SQL que filtra los caracteres de puntuación CJK

Puede crear un carácter Unicode usando NCHAR() función:

SELECT NCHAR(0x3000); -- http://unicode-table.com/en/3000/

También puede usar eso en un WHERE cláusula de la siguiente manera, incluido su uso con REPLACE() función para deshacerse de ellos. Solo necesita especificar una intercalación binaria (una que termine en _BIN2 ) para asegurarse de que no está reemplazando ningún otro carácter que se traduzca en un espacio (aunque no estoy seguro de que el efecto neto de eso sea diferente cuando no se usa una intercalación binaria, al menos en este escenario).

SELECT * 
FROM   [Table]
WHERE  [Column] LIKE N'%' + NCHAR(0x3000) + N'%' COLLATE Latin1_General_100_BIN2;

UPDATE tbl
SET    tbl.Column = REPLACE(tbl.[Column] COLLATE Latin1_General_100_BIN2,
                            NCHAR(0x3000),
                            N' ')
FROM   [Table] tbl
WHERE  [Column] LIKE N'%' + NCHAR(0x3000) + N'%' COLLATE Latin1_General_100_BIN2;