J'ai peu de strings dans la database sql server 2012 qui a un espace CJK (plus grand qu'un espace)
Décimal Unicode: 12288
Hex: 3000
Je voudrais écrire une requête SQL pour les filterr en utilisant la clause WHERE. Des pointeurs?
Merci, Rajesh
Vous pouvez créer un caractère Unicode à l'aide de la fonction NCHAR()
:
SELECT NCHAR(0x3000); -- http://unicode-table.com/en/3000/
Vous pouvez également utiliser cela dans une clause WHERE
comme suit, y compris en l'utilisant également avec la fonction REPLACE()
pour se débarrasser d'eux. Vous avez juste besoin de spécifier un classment binary (un terminant par _BIN2
) pour vous assurer que vous ne remplacez aucun autre caractère qui se traduit par un espace (même si je ne suis pas sûr que l'effet net soit différent quand vous n'utilisez pas un binary collation, au less 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;