none
Like vários registros RRS feed

  • Pergunta

  • Boa Tarde,

    Tenho um select onde preciso utilizar o LIKe porém em vários registro. COmo faço?

    Tentei desta forma porém sem sucesso.

    SELECT pd_qt,pd_qtoficina,* FROM GER_PD JOIN GER_PDE ON GER_PDE.PD_CD = GER_PD.PD_CD WHERE PD_NBM LIKE (('%40081100%','%40081100%'))

     

    Obrigado

    quinta-feira, 21 de julho de 2011 17:17

Respostas

Todas as Respostas

  • Rene,

         Essa construção não é permitida. Veja que este mesmo assunto foi tratado em um post recente:

    http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/ec7108ea-8a42-4e26-bd13-08d3b9d2d208

    Espero ter ajudado.


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
    • Sugerido como Resposta Gustavo Maia Aguiar quinta-feira, 21 de julho de 2011 17:27
    • Marcado como Resposta Eder Costa segunda-feira, 25 de julho de 2011 17:04
    quinta-feira, 21 de julho de 2011 17:22
    Moderador
  • Boa noite Rene,

    Caso você saiba exatamente quais os PD_NBM que você irá buscar utilize o comando IN.

    SELECT pd_qt,pd_qtoficina,* FROM GER_PD JOIN GER_PDE ON GER_PDE.PD_CD = GER_PD.PD_CD WHERE PD_NBM IN ('40081100','40081100','40081100')

    Espero ter ajudado, se for o caso, favor marque como útil.

    Até mais.

    sexta-feira, 22 de julho de 2011 00:52
  • Eu utilizo o seguinte script:

    DECLARE
    	@CONTRATO	VARCHAR(20),
    	@CONSULTA	VARCHAR(300)
    	
    DECLARE CRS_CUR CURSOR
    FOR
    
    	SELECT CONTRATO FROM TABELA_TESTE WITH(NOLOCK)
    	
    OPEN CRS_CUR
    
    	FETCH NEXT
    		FROM CRS_CUR
    			INTO @CONTRATO
    			
    WHILE @@FETCH_STATUS = 0
    BEGIN
    				
    	SET @CONSULTA = 'INSERT INTO tabela_teste2
    	SELECT CONTRATO_cli FROM tabela_sistema WITH(NOLOCK) WHERE CONTRATO_cli LIKE ''' + @CONTRATO + '%'''
    	
    	EXEC(@CONSULTA)
    	
    	FETCH NEXT
    		FROM CRS_CUR
    			INTO @CONTRATO
    	
    END
    
    CLOSE CRS_CUR
    DEALLOCATE CRS_CUR

    Você criar uma tabela e insere seus registros lá, no caso criei a TABELA_TESTE e também a tabela que irá receber os dados (pode ser uma temporária), eu criei a TABELA_TESTE2.

    A consulta irá buscar todos os dados e armazená-los no cursor.

    É setado na variável @CONSULTA o script que irá buscar os dados que queremos com a cláusula LIKE.

    'INSERT INTO tabela_teste2
    	SELECT CONTRATO_FIN FROM CAD_DEVF WITH(NOLOCK) WHERE CONTRATO_FIN LIKE ''' + @CONTRATO + '%'''

    Executamos o script que está na variável com o comando EXEC (@CONSULTA).

    Com isto será executado o comando de insert junto com o select jogando o dado para a tabela de destino, assim você poderá trabalhar com em outra consulta.

    Sei que o tópico é antigo, mas esta dúvida ocorre muito.

    Abs.

    Tadeu Bonato (WooXTi)


    • Editado Tadeu R Bonato segunda-feira, 29 de julho de 2013 18:35 correção
    segunda-feira, 29 de julho de 2013 18:34