Vor kurzem muss ich chinesische Zeichen aus SQL-Strings abfangen, die Unicode-Funktion verwenden, um die Unicode-Codierung der Zeichen zu bestimmen, und nicht-chinesische Zeichen entsprechend dem Codierungsbereich herausfiltern.
wird als Funktion geschrieben
/*@str muss die Zeichenfolge chinesischer Zeichen abrufen*/
create function CharRep(@str nvarchar(200)) returns nvarchar(200) as begin declare @i int, @char nvarchar(1), @zh nvarchar(200) set @i = 1 set @zh = '' while @i <= len(@str) begin set @char = substring(@str, @i, 1) if unicode(@char) between 19968 And 40869 set @zh = @zh + @char set @i = @i + 1 end return @zh end
Execute select dbo.CharRep(' Nonghao a /bc Nonghao')
Ergebnis a/bc
Anhang:
Unicode-Kodierungsbereich:
Chinesische Zeichen: [0x4e00, 0x9fa5] (oder dezimal [19968, 40869])
Zahlen: [0x30, 0x39] (oder dezimal [48, 57]) Suche
Kleinbuchstaben: [0x61, 0x7a] (oder dezimal [97, 122] )
Großbuchstaben: [0x41,0x5a] (oder Dezimalzahl [65, 90])