1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

utilizar 'Like' em inteiros

Discussão em 'Programação' iniciada por asa_delta, 9 de Fevereiro de 2007. (Respostas: 3; Visualizações: 1016)

  1. asa_delta

    asa_delta Power Member

    Boas


    Estou com um problema, tenho k efectuar a pesquisa numa Data View em C#, para tal estou a utilizar a função 'Like', ela funciona bem caso o campo da BD for Varchar, mas se for Inteiro não funciona.

    Ex:
    l_filter = "FSC_NOME like '" + TB_NOME.Text + "%'";

    funciona na perfeirção pois FSC_NOME é um Varchar, mas se for um INTEIRO não funciona,
    alguém me ajude !!!!!!!

    Já utilizei a função "to_varchar()", mas no código dá erro

    Obrigado
     
  2. chight

    chight Power Member

    select * from tabela where Convert(varchar,campo_numerico) like '%666%'
     
  3. asa_delta

    asa_delta Power Member

    no código coloquei assim, mas não dá

    l_filter = "FSC_NUM_MECA = " + Convert.ToChar( TB_NUMERO.Text),

    sendo o FSC_NUM_MECA um inteiro


    o mais estranho é que no Orcale Sql developer, faz a pesquisa correctamente, não dando kalker erro
     
    Última edição pelo moderador: 10 de Fevereiro de 2007
  4. KiKas

    KiKas Power Member

    se é oracle não é convert mas sim to_char

    select * from tabela where to_char(campo_numerico) like '%666%'


    agora eu não te recomendo é fazeres isso porque essa query irá fazer sempre um full table scan. Mesmo que tenhas indice nesse campo. Alem disso o % antes da expressão é muito ineficiente, mantem só o '%' no fim se for possivel

    se for mesmo nencessário então cria um function based index para essa expressão para evitar o full table scan e passares a ter um index range scan
     

Partilhar esta Página