none
consulta SQL RRS feed

  • Pergunta

  • Preciso fazer uma consulta em tabelas que armazenam os dados de forma diferente:

    Tabela 1

    CodProd

    00123x

    e em outra tabela 2:

    CodProd

    00123.00

     

    preciso comparar como o CodProd 00123 somente.

     

    Fiz uma Case alterando para retirar o x para que consiga chegar a 00123, porem não consigo alterar o da tabela 2 na mesma case, como posso fazer?

    segunda-feira, 23 de janeiro de 2012 17:35

Respostas

  • Amigo,

     

    Segue os exemplos de formatação dentro do IF

    DECLARE @Var VARCHAR(10)

    DECLARE @Var2 VARCHAR(20)

    SET @Var = '00123x'

    SET @Var2 = '00123.00'

     

    IF(REPLACE(@Var, 'x', '') = SUBSTRING(@Var2, 0, CHARINDEX('.', @Var2)))

          SELECT 1

    ELSE

          SELECT 0


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    segunda-feira, 23 de janeiro de 2012 17:38
    Moderador

Todas as Respostas

  • Amigo,

     

    Segue os exemplos de formatação dentro do IF

    DECLARE @Var VARCHAR(10)

    DECLARE @Var2 VARCHAR(20)

    SET @Var = '00123x'

    SET @Var2 = '00123.00'

     

    IF(REPLACE(@Var, 'x', '') = SUBSTRING(@Var2, 0, CHARINDEX('.', @Var2)))

          SELECT 1

    ELSE

          SELECT 0


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    segunda-feira, 23 de janeiro de 2012 17:38
    Moderador
  • Obrigado!
    segunda-feira, 23 de janeiro de 2012 19:21
  • L.Ribeiro,

    Veja este outro exemplo similar ao do Fabrizzio:

    DECLARE

    @ValorOriginal VARCHAR(10),

    @ValorComparativo VARCHAR(10),

    @Resultado Varchar(10)

    SET

    @ValorOriginal = '00123x'

    SET

    @ValorComparativo = '00123.00'

    Set

    @Resultado = Replace(@ValorComparativo,'.','x')

    If

    (SubString(@Resultado,1,6) = @ValorOriginal)

    SELECT 'Valores Iguais'

    ELSE

    SELECT 'Valores Diferentes'


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quinta-feira, 26 de janeiro de 2012 11:47