|
|
Publicēts 07.12.2018 13:24:31
|
|
|
|

Tā kā datu bāzē ir jāvaicā daži dati, lauka saturs var saturēt tikai ķīniešu valodas rakstzīmes, burtus un ciparus, un tajā nedrīkst būt speciāli simboli (izņemot īpašos datus) Vispirms apskatīsim sekas šādi:
Resursu:
Kā datu bāze sql vaicā laukā, kurā ir tikai cipari un burti vai ķīniešu rakstzīmes
- Satur tikai ciparus un burtus
Atlasiet kolonnas nosaukumu no tabulas nosaukuma, kur REGEXP_LIKE(kolonnas nosaukums,'^([\u4e00-\u9FA5]+)$')
--Satur tikai ķīniešu rakstzīmes
atlasiet kolonnas nosaukumu no tabulas nosaukuma, kur length(kolonnas nosaukums)=length(ASCIISTR(kolonnas nosaukums))-length(replace(ASCIISTR(kolonnas nosaukums),'\',''))
Piezīmes: Funkcija asciistr() pārvērš virkni ASCII vērtībā, un, ja rakstzīme atrodas ASCII kodu tabulā, tā tiks pārvērsta par atbilstošo ASCII rakstzīmi; Ja tādu rakstzīmju nav, piemēram, ķīniešu un pilna platuma rakstzīmes, tas tiks konvertēts \xxxx formātā.
Funkcija length() skaitās, ka ķīniešu garums ir 1, un ķīniešu rakstzīme, kas atbilst lengthb(), ir 2 baiti. Iepriekš minētais apgalvojums ir salīdzināt ķīniešu rakstzīmju skaitu ar \ skaitu pēc konvertēšanas uz ASCII vērtībām, ja tās ir vienādas, tas nozīmē, ka tās visas ir ķīniešu rakstzīmes. (Ja vēlaties izslēgt pilna platuma simbolu ietekmi, vispirms lauks jāmaina uz pusi platuma, un funkcija ir to_single_byte()).
sqlserver2008r2 meklē pirmo pozīciju, kur parādās burtciparu skaitļi, kas nav ķīniešu valoda
Vide: Testa datu bāzei sqlserver2008r2 ir Chinese_PRC_CI_AS šķirošanas metode, un es to neesmu izmēģinājis citās vidēs Paziņojums
Atgrieztā vērtība: 4
Mans risinājums
(Beigas)
|
Iepriekšējo:Balvu anketa, kā jūs uzzinājāt par šo vietni?Nākamo:Modificējiet uz savu vārteju, un iekšējie un ārējie tīkli ir ieslēgti vienlaicīgi, ja ir divas tīkla kartes
|