Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Serveur SQL filtrant les caractères de ponctuation CJC

Vous pouvez créer un caractère Unicode en utilisant le NCHAR() fonction :

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

Vous pouvez également l'utiliser dans un WHERE clause comme suit, y compris l'utiliser également avec le REPLACE() fonction pour s'en débarrasser. Il vous suffit de spécifier un classement binaire (un se terminant par _BIN2 ) pour vous assurer que vous ne remplacez aucun autre caractère qui se traduit par un espace (bien que je ne sois pas sûr que l'effet net de cela serait différent si vous n'utilisez pas un classement binaire, du moins dans ce scénario).

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;