|
|
Publicado em 07/12/2018 13:24:31
|
|
|
|

Como você precisa consultar alguns dados no banco de dados, o conteúdo do campo só pode conter caracteres, letras e números chineses, e não pode conter símbolos especiais (exceto para dados especiais) Vamos dar uma olhada nos efeitos primeiro, da seguinte forma:
Recursos:
Como o SQL do banco de dados consulta um campo apenas com números e letras ou caracteres chineses
- Contém apenas números e letras
selecione nome da coluna do nome da tabela onde REGEXP_LIKE(nome da coluna,'^([\u4e00-\u9fa5]+)$')
--Contém apenas caracteres chineses
selecione o nome da coluna do nome da tabela onde comprimento(nome da coluna)=comprimento(ASCIISTR(nome da coluna))-comprimento(substituir(ASCIISTR(nome da coluna),'\',''))
Nota: A função asciistr() converterá a string em um valor ASCII e, se o caractere estiver na tabela de códigos ASCII, será convertido no caractere correspondente ASCII; Se não houver, como caracteres chineses e de largura total, será convertido para o formato \xxxx.
A função length() indica que o comprimento chinês é 1, e o caractere chinês correspondente a lengthb() é 2 bytes. A afirmação acima é para comparar o número de caracteres chineses com o número de \ após converter para valores ASCII; se forem iguais, significa que todos são caracteres chineses. (Se você quiser excluir a influência dos símbolos de largura total, primeiro precisa mudar o campo para metade da largura, e a função é to_single_byte()).
sqlserver2008r2 busca a primeira posição onde números alfanuméricos não chineses aparecem
Meio Ambiente: O banco de dados de teste sqlserver2008r2 tem um método de ordenação de Chinese_PRC_CI_AS, e eu não testei em outros ambientes Enunciado
Valor de retorno: 4
Minha solução
(Fim)
|
Anterior:Questionário de prêmio, como você conheceu esse site?Próximo:Modifique para seu próprio gateway, e as redes interna e externa estão ativadas ao mesmo tempo, desde que haja duas placas de rede
|