sql >> Database >  >> RDS >> Sqlserver

SQL-server die CJK-interpunctietekens filtert

U kunt een Unicode-teken maken met behulp van de NCHAR() functie:

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

Je kunt dat ook gebruiken in een WHERE clausule als volgt, inclusief het gebruik ervan met de REPLACE() functie om ze kwijt te raken. U hoeft alleen een binaire sortering op te geven (een die eindigt op _BIN2 ) om ervoor te zorgen dat u geen ander teken vervangt dat naar een spatie vertaalt (hoewel ik niet zeker weet of het netto-effect daarvan anders zou zijn als u geen binaire sortering gebruikt, althans in dit 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;



  1. SQL Oracle LEFT JOIN en SUBQUERY-fout:ORA-00905:ontbrekend trefwoord

  2. Krijg het huidige jaar, de huidige maand en de huidige dag in MySQL

  3. PHP houdt niet van deze T_String. (Syntaxisfout onverwachte T_STRING)

  4. De frequentie selecteren van een resultaat dat in meerdere kolommen kan verschijnen (SQL)