|
|
Geplaatst op 07-12-2018 13:24:31
|
|
|
|

Omdat je bepaalde gegevens in de database moet opzoeken, mag de veldinhoud alleen Chinese karakters, letters en cijfers bevatten, en geen speciale symbolen bevatten (behalve speciale gegevens) Laten we eerst naar de effecten kijken, als volgt:
Weg:
Hoe database-SQL een veld bevraagt met alleen cijfers en letters of Chinese karakters
- Bevat alleen cijfers en letters
Selecteer kolomnaam uit tabelnaam waar REGEXP_LIKE(kolomnaam,'^([\u4e00-\u9fa5]+)$')
--bevat alleen Chinese karakters
selecteer kolomnaam uit tabelnaam waarbij length(column name)=length(ASCIISTR(column name))-length(replace(ASCIISTR(column name),'\',''))
Opmerking: De asciistr()-functie zet de string om in een ASCII-waarde, en als het teken in de ASCII-codetabel staat, wordt het omgezet naar het overeenkomstige ASCII-teken; Als er geen zijn, zoals Chinese en full-width tekens, wordt deze omgezet naar \xxxx formaat.
De length()-functie telt dat de Chinese lengte 1 is, en het Chinese teken dat overeenkomt met lengthb() 2 bytes. De bovenstaande uitspraak is bedoeld om het aantal Chinese tekens te vergelijken met het aantal \ na het omzetten naar ASCII-waarden; als ze gelijk zijn, betekent dit dat het allemaal Chinese karakters zijn. (Als je de invloed van full-width symbolen wilt uitsluiten, moet je eerst het veld veranderen naar halve breedte, en de functie is to_single_byte()).
sqlserver2008r2 zoekt naar de eerste positie waar niet-Chinese alfanumerieke getallen voorkomen
Omgeving: De testdatabase sqlserver2008r2 heeft een sorteermethode van Chinese_PRC_CI_AS, en ik heb het in andere omgevingen niet geprobeerd Stelling
Retourwaarde: 4
Mijn oplossing
(Einde)
|
Vorig:Prijsvragenlijst, hoe wist je van deze site?Volgend:Pas aan naar je eigen gateway, en het interne en externe netwerk staan tegelijk aan, mits er twee netwerkkaarten zijn
|