|
|
Közzétéve 2018. 12. 07. 13:24:31
|
|
|
|

Mivel néhány adatot lekérdezésre van szükség az adatbázisban, a mező tartalma csak kínai karaktereket, betűket és számokat tartalmazhat, és nem tartalmazhat speciális szimbólumokat (kivéve a speciális adatokat) Először nézzük meg a hatásokat, a következők szerint:
Erőforrások:
Hogyan kérdez egy adatbázis SQL egy mezőt csak számokkal, betűkkel vagy kínai karakterekkel
- Csak számokat és betűket tartalmaz
Válaszd ki az oszlop nevét a tábla névből, ahol REGEXP_LIKE(oszlop név,'^([\u4e00-\u9fa5]+)$')
--Csak kínai karaktereket tartalmaz
válassza ki az oszlopnevet a tábla névből, ahol length(oszlop neve)=length(ASCIISTR(oszlop neve))-length(replace(ASCIISTR(oszlop neve),'\',''))
Megjegyzés: Az asciistr() függvény átalakítja a stringet ASCII értékké, és ha a karakter az ASCII kódtáblában van, akkor az ASCII megfelelő karakterévé alakul át; Ha nincs, például kínai és teljes szélességű karakterek, akkor átalakítják \xxxx formátumra.
A length() függvény azt számolja, hogy a kínai hossz 1, és a lengthb() kínai karaktere 2 bájt. A fenti állítás az, hogy a kínai karakterek számát összehasonlítsuk a \ számmal az ASCII értékekre való átváltás után, ha egyenlőek, akkor mindannyian kínai karakterek. (Ha ki akarod zárni a teljes szélességű szimbólumok hatását, először a mezőt kell félszélességre változtatni, és a függvény to_single_byte()).
A sqlserver2008r2 az első pozíciót keresi, ahol nem kínai alfanumerikus számok jelennek meg
Környezet: A sqlserver2008r2 tesztadatbázis Chinese_PRC_CI_AS rendezési módszerrel rendelkezik, és más környezetekben még nem próbáltam Nyilatkozat
Visszavételi érték: 4
Az én megoldásom
(Vége)
|
Előző:Díjkérdőív, honnan tudtad ezt az oldalt?Következő:Módosítsd a saját átjáródra, és a belső és külső hálózatok egyszerre kapcsolódnak, feltéve, hogy két hálózati kártya van
|