Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Filtraggio dei caratteri di punteggiatura CJK del server SQL

Puoi creare un carattere Unicode usando NCHAR() funzione:

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

Puoi anche usarlo in un WHERE clausola come segue, incluso il suo utilizzo anche con REPLACE() funzione per eliminarli. Devi solo specificare un confronto binario (uno che termina con _BIN2 ) per assicurarti di non sostituire nessun altro carattere che si traduce in uno spazio (anche se non sono sicuro che l'effetto netto di ciò sarebbe diverso quando non si utilizzano regole di confronto binarie, almeno in questo scenario).

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;