|
|
Veröffentlicht am 07.12.2018 13:24:31
|
|
|
|

Da man einige Daten in der Datenbank abfragen muss, darf der Feldinhalt nur chinesische Zeichen, Buchstaben und Zahlen enthalten und keine speziellen Symbole enthalten (außer speziellen Daten) Schauen wir uns zunächst die Effekte an, wie folgt:
Betriebsmittel:
Wie Datenbank-SQL ein Feld abfragt, das nur Zahlen und Buchstaben oder chinesische Zeichen enthält
- Enthält nur Zahlen und Buchstaben
Wähle den Spaltennamen aus dem Tabellennamen, wo REGEXP_LIKE(Spaltenname,'^([\u4e00-\u9fa5]+)$')
--Enthält nur chinesische Zeichen
wähle den Spaltennamen aus dem Tabellennamen, bei dem length(column name)=length(ASCIISTR(column name))-length(replace(ASCIISTR(column name),'\',''))
Hinweis: Die asciistr()-Funktion wandelt die Zeichenkette in einen ASCII-Wert um, und wenn das Zeichen in der ASCII-Codetabelle steht, wird es in das entsprechende ASCII-Zeichen umgewandelt; Wenn keine vorhanden sind, wie zum Beispiel chinesische oder vollbreitige Zeichen, wird es in das \xxxx-Format umgewandelt.
Die Length()-Funktion zählt, dass die chinesische Länge 1 ist und das chinesische Zeichen, das der Lengthb() entspricht, 2 Bytes beträgt. Die obige Aussage soll die Anzahl der chinesischen Zeichen mit der Anzahl der \ nach der Umrechnung in ASCII-Werte vergleichen; wenn sie gleich sind, bedeutet das, dass es sich um alle chinesische Zeichen handelt. (Wenn man den Einfluss von Vollbreitensymbolen ausschließen will, muss man zuerst das Feld auf halbe Breite ändern, und die Funktion lautet to_single_byte()).
sqlserver2008r2 sucht nach der ersten Position, an der nicht-chinesische alphanumerische Zahlen erscheinen
Umgebung: Die Testdatenbank sqlserver2008r2 hat eine Sortiermethode Chinese_PRC_CI_AS, und ich habe sie in anderen Umgebungen nicht ausprobiert Aussage
Rückgabewert: 4
Meine Lösung
(Ende)
|
Vorhergehend:Preisfragebogen, woher wussten Sie von dieser Seite?Nächster:Wenn du auf dein eigenes Gateway umwechsle, sind das interne und das externe Netzwerk gleichzeitig eingeschaltet, vorausgesetzt, es gibt zwei Netzwerkkarten
|