Тъй като трябва да направите заявка за някои данни в базата данни, съдържанието на полето може да съдържа само китайски йероглифи, букви и цифри и не може да съдържа специални символи (освен специални данни) Нека първо разгледаме ефектите, както следва:
Ресурси:
Как SQL в базата данни прави запитвания в поле само с числа и букви или китайски йероглифи
- Съдържа само числа и букви
Изберете име на колона от името на таблицата, където REGEXP_LIKE(име на колона,'^([\u4e00-\u9fa5]+)$')
--Съдържа само китайски йероглифи
изберете име на колона от името на таблицата, където length(име на колона)=length(ASCIISTR(име на колона))-length(replace(ASCIISTR(име на колона),'\',''))
Забележка: Функцията asciistr() ще преобразува низа в ASCII стойност, и ако знакът е в ASCII кодовата таблица, той ще бъде преобразуван в съответния символ на ASCII; Ако няма такива, като китайски и с пълна ширина, ще бъде конвертиран във формат \xxxx.
Функцията length() отчита, че китайската дължина е 1, а китайският знак, съответстващ на lengthb(), е 2 байта. Горното твърдение е да се сравни броят на китайските йероглифи с броя на \ след конвертиране в ASCII стойности, ако са равни, това означава, че всички са китайски йероглифи. (Ако искате да изключите влиянието на символи с пълна ширина, първо трябва да промените полето на половин ширина, а функцията е to_single_byte()).
sqlserver2008r2 търси първата позиция, където се появяват некитайски буквено-цифрови числа
Околна среда: Тестовата база данни sqlserver2008r2 има метод за сортиране Chinese_PRC_CI_AS и не съм го пробвал в други среди Твърдение
Възвръщаема стойност: 4
Моето решение
(Край)
|