Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL server filtrando caracteres de pontuação CJK


Você pode criar um caractere Unicode usando o NCHAR() função:
SELECT NCHAR(0x3000); -- http://unicode-table.com/en/3000/

Você também pode usar isso em um WHERE cláusula da seguinte forma, incluindo também usá-la com o REPLACE() função para eliminá-los. Você só precisa especificar uma ordenação binária (uma terminando em _BIN2 ) para garantir que você não esteja substituindo nenhum outro caractere que se traduza em um espaço (embora eu não tenha certeza de que o efeito líquido disso seria diferente quando não estiver usando um agrupamento binário, pelo menos neste cenário).
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;