|
|
Publicerad på 2018-12-07 13:24:31
|
|
|
|

Eftersom du behöver fråga viss data i databasen kan fältinnehållet endast innehålla kinesiska tecken, bokstäver och siffror, och kan inte innehålla speciella symboler (förutom specialdata) Låt oss först titta på effekterna, enligt följande:
Resurser:
Hur databas-SQL frågar ett fält med endast siffror och bokstäver eller kinesiska tecken
- Innehåller endast siffror och bokstäver
Välj kolumnnamn från tabellnamn där REGEXP_LIKE(kolumnnamn,'^([\u4e00-\u9fa5]+)$')
--innehåller endast kinesiska tecken
välj kolumnnamn från tabellnamn där length(kolumnnamn)=length(ASCIISTR(kolumnnamn))-length(replace(ASCIISTR(kolumnnamn),'\',''))
Observera: Funktionen asciistr() konverterar strängen till ett ASCII-värde, och om tecknet finns i ASCII-kodtabellen konverteras det till motsvarande tecken i ASCII; Om det inte finns några, såsom kinesiska och fullbreddstecken, konverteras det till \xxxx-format.
Length()-funktionen räknar att den kinesiska längden är 1, och det kinesiska tecknet som motsvarar lengthb() är 2 byte. Ovanstående uttalande är för att jämföra antalet kinesiska tecken med antalet \ efter att ha konverterat till ASCII-värden, om de är lika betyder det att de alla är kinesiska tecken. (Om du vill utesluta inflytandet från fullbreddssymboler måste du först ändra fältet till halvbredd, och funktionen är to_single_byte()).
sqlserver2008r2 letar efter den första positionen där icke-kinesiska alfanumeriska tal förekommer
Miljö: Testdatabasen sqlserver2008r2 har en sorteringsmetod som Chinese_PRC_CI_AS, och jag har inte testat den i andra miljöer Uttalande
Avkastningsvärde: 4
Min lösning
(Slut)
|
Föregående:Prisfrågeformulär, hur kände du till den här sidan?Nästa:Modifiera till din egen gateway, och det interna och externa nätverket är på samtidigt förutsatt att det finns två nätverkskort
|