none
Função para caixa alta RRS feed

  • Pergunta

  • Tenho um campo texto que pode estar em caixa alta, ou ainda tudo minúsculo, ou ainda apenas a primeira letra maiúscula.

    Preciso identificar quando o campo está em caixa alta e quando não está.

    Alguém poderia me dar alguma direção?

    Obrigada,

    Tassiana

    segunda-feira, 15 de setembro de 2008 15:27

Respostas

  • Olá Tassiana,

     

    A função UPPER do SQL Server, transforma todos os caracteres em caixa alta... Então é só você comparar se o UPPER(NomeDoCampo) é igual ao NomeDoCampo sem o upper Wink.

     

    Se o seu banco de dados não faz diferença entre maiúsculas e minúsculas, você terá de fazer um cast para que a comparação seja binária...

     

    Por exemplo, para selecionar apenas os registros que possuem determinado campo em caixa alta:

     

    Code Snippet

     

    SELECT NomeDoCampo FROM NomeDaTabela

    WHERE CAST(UPPER(NomeDoCampo) AS BINARY) = CAST(NomeDoCampo AS BINARY)

     

     

     

    Outro exemplo, mostrar o campo e um texto dizendo se está em caixa alta, ou não:

    Code Snippet

     

    SELECT

    NomeDoCampo,

    CASE WHEN CAST(UPPER(NomeDoCampo) AS BINARY) = CAST(NomeDoCampo AS BINARY) THEN

    'Está em caixa alta'

    ELSE

    'NÃO está em caixa alta'

    END

    FROM

    NomeDaTabela



    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://caioproiete.net
    segunda-feira, 15 de setembro de 2008 15:43
  • Olá Tassiana,

     

     Primeira coisa a saber é se você precisa tratar esses dados, ou seja, processar e devolver formatado ou saber realment se o que foi digitado está em letras maiusculas ou minusculas.

     

     Se você só for formatar os dados para salvar no banco de dados você pode usar a função Upper, ela funciona da seguinte forma:

     Upper('casa') = 'CASA'

     

    mas se você precisar saber qual se o que foi digitado é maiusculo ou minusculo você pode utilizar a função Ascii, ela funciona da seguinte forma:

     

    Ascii('a') = 97

     

    ela tem de ser usada letra a letra.

    os valores de 65 até 90 são o alfabeto em letras maiusculas os valores de 97 até 122 são o alfabeto em letras minusculas.

     

    Abraço!

    segunda-feira, 15 de setembro de 2008 15:45

Todas as Respostas

  • Olá Tassiana,

     

    A função UPPER do SQL Server, transforma todos os caracteres em caixa alta... Então é só você comparar se o UPPER(NomeDoCampo) é igual ao NomeDoCampo sem o upper Wink.

     

    Se o seu banco de dados não faz diferença entre maiúsculas e minúsculas, você terá de fazer um cast para que a comparação seja binária...

     

    Por exemplo, para selecionar apenas os registros que possuem determinado campo em caixa alta:

     

    Code Snippet

     

    SELECT NomeDoCampo FROM NomeDaTabela

    WHERE CAST(UPPER(NomeDoCampo) AS BINARY) = CAST(NomeDoCampo AS BINARY)

     

     

     

    Outro exemplo, mostrar o campo e um texto dizendo se está em caixa alta, ou não:

    Code Snippet

     

    SELECT

    NomeDoCampo,

    CASE WHEN CAST(UPPER(NomeDoCampo) AS BINARY) = CAST(NomeDoCampo AS BINARY) THEN

    'Está em caixa alta'

    ELSE

    'NÃO está em caixa alta'

    END

    FROM

    NomeDaTabela



    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://caioproiete.net
    segunda-feira, 15 de setembro de 2008 15:43
  • Olá Tassiana,

     

     Primeira coisa a saber é se você precisa tratar esses dados, ou seja, processar e devolver formatado ou saber realment se o que foi digitado está em letras maiusculas ou minusculas.

     

     Se você só for formatar os dados para salvar no banco de dados você pode usar a função Upper, ela funciona da seguinte forma:

     Upper('casa') = 'CASA'

     

    mas se você precisar saber qual se o que foi digitado é maiusculo ou minusculo você pode utilizar a função Ascii, ela funciona da seguinte forma:

     

    Ascii('a') = 97

     

    ela tem de ser usada letra a letra.

    os valores de 65 até 90 são o alfabeto em letras maiusculas os valores de 97 até 122 são o alfabeto em letras minusculas.

     

    Abraço!

    segunda-feira, 15 de setembro de 2008 15:45
  • Da uma olhadinha aqui: http://amlneto.blogspot.com.br/2010/10/sql-server-caixa-alta-e-baixa.html
    quinta-feira, 9 de junho de 2016 03:35