Como necesitas consultar algunos datos en la base de datos, el contenido del campo solo puede contener caracteres chinos, letras y números, y no puede contener símbolos especiales (excepto para datos especiales) Veamos primero los efectos, que son los siguientes:
Recursos:
Cómo consulta SQL en una base de datos un campo solo con números y letras o caracteres chinos
- Contiene solo números y letras
selecciona el nombre de la columna del nombre de la tabla donde REGEXP_LIKE(nombre de columna,'^([\u4e00-\u9fa5]+)$')
--Solo contiene caracteres chinos
seleccione el nombre de la columna del nombre de la tabla donde longitud(nombre columna)=longitud(ASCIISTR(nombre columna))-longitud(reemplazar(ASCIISTR(nombre columna),'\',''))
Nota: La función asciistr() convertirá la cadena en un valor ASCII, y si el carácter está en la tabla de códigos ASCII, se convertirá en el carácter correspondiente ASCII; Si no hay ninguno, como caracteres chinos y de ancho completo, se convertirá al formato \xxxx.
La función length() cuenta que la longitud china es 1, y el carácter chino correspondiente a lengthb() es 2 bytes. La afirmación anterior es para comparar el número de caracteres chinos con el número de \ después de convertir a valores ASCII; si son iguales, significa que todos son caracteres chinos. (Si quieres excluir la influencia de símbolos de ancho completo, primero tienes que cambiar el campo a mitad de ancho, y la función es to_single_byte()).
sqlserver2008r2 busca la primera posición donde aparecen números alfanuméricos no chinos
Medio ambiente: La base de datos de pruebas sqlserver2008r2 tiene un método de ordenación de Chinese_PRC_CI_AS, y no lo he probado en otros entornos Enunciado
Valor de retorno: 4
Mi solución
(Fin)
|