|
|
Opublikowano 07.12.2018 13:24:31
|
|
|
|

Ponieważ musisz zapytać niektóre dane w bazie danych, zawartość pola może zawierać jedynie znaki chińskie, litery i cyfry, a nie może zawierać specjalnych symboli (poza danymi specjalnymi) Przyjrzyjmy się najpierw efektom, w następujący sposób:
Zasoby:
Jak SQL bazy danych zapytuje pole wyłącznie z cyframi i literami lub znakami chińskimi
- Zawiera jedynie liczby i litery
Wybierz nazwę kolumny z nazwy tabeli, gdzie REGEXP_LIKE(nazwa kolumny,'^([\u4e00-\u9fa5]+)$')
--Zawiera tylko znaki chińskie
wybierz nazwę kolumny z nazwy tabeli, gdzie długość(nazwa kolumny)=długość(ASCIISTR(nazwa kolumny))-długość(zastąpnij(ASCIISTR(nazwa kolumny),'\','))
Uwaga: Funkcja asciistr() przekształci ciąg znaków na wartość ASCII, a jeśli znak znajduje się w tabeli kodów ASCII, zostanie przekształcony na odpowiadający mu znak ASCII; Jeśli nie ma takich znaków, takich jak chińskie i znaki pełnoszerokościowe, zostanie przekonwertowany na format \xxxx.
Funkcja length() liczy, że chińska długość wynosi 1, a chiński znak odpowiadający lengthb() to 2 bajty. Powyższe stwierdzenie polega na porównaniu liczby znaków chińskich z liczbą \ po konwersji na wartości ASCII; jeśli są równe, oznacza to, że wszystkie są znakami chińskimi. (Jeśli chcesz wykluczyć wpływ symboli o pełnej szerokości, najpierw musisz zmienić pole na półszerokość, a funkcja to to_single_byte()).
sqlserver2008r2 szuka pierwszej pozycji, gdzie pojawiają się niechińskie liczby alfanumeryczne
Środowisko: Baza testowa sqlserver2008r2 ma metodę sortowania Chinese_PRC_CI_AS i nie próbowałem jej w innych środowiskach Oświadczenie
Wartość zwrotu: 4
Moje rozwiązanie
(Koniec)
|
Poprzedni:Kwestionariusz nagrody, skąd wiedziałeś o tej stronie?Następny:Zmodyfikuj na własną bramę, a sieci wewnętrzne i zewnętrzne działają jednocześnie, pod warunkiem, że są dwie karty sieciowe
|