Inquiridor
Dúvida - Like

Pergunta
-
Pessoal, minha dúvida é simples, existe a possibilidade de usar mais de um parametro no comando like? ou tem que concatenar vários para satisfazer a consulta.
FUNCIONA:
Code Snippetselect
* from dbo.Agrupwhere
cdagr1 like '01%' or cdagr1 like '02%'É mais ou menos isso que quero fazer, é possível de alguma outra forma ou tem que concatenar mesmo?
Code Snippetselect
* from dbo.Agrupwhere
cdagr1 like ('01%' or '02%')Abraço
Todas as Respostas
-
Boa Tarde,
Se você trabalhar um pouquinho a aplicação de Regular Expressions, poderá adaptá-las ao LIKE. Ex:
Code SnippetCREATE
TABLE #TBLTESTE (CAMPO VARCHAR(20))INSERT
INTO #TBLTESTE VALUES ('ALGOV1+SUFIXO')INSERT
INTO #TBLTESTE VALUES ('ALGOV2+SUFIXO')INSERT
INTO #TBLTESTE VALUES ('ALGOV3+SUFIXO')INSERT
INTO #TBLTESTE VALUES ('ALGOV4+SUFIXO')SELECT
CAMPO FROM #TBLTESTEWHERE
CAMPO LIKE '%V[1-2]%'DROP
TABLE #TBLTESTENo seu caso acho que o comando abaixo funciona
Code Snippetselect
* from dbo.Agrupwhere
cdagr1 like '0[1-2]%'[ ]s,
Gustavo
-
Boa Tarde Gustavo!
Sua informação agregou para mim pois e não conhecia esse método, mas pelo que percebi é somente no caso dos registros serem semelhantes, e no caso de eu ter dois produtos com numeração diferente?
exemplo:
eu quero trazer no like os produtos com essas duas condições %181104 e %5489 .
é possível sem utilizar dois likes?
esse codigo abaixo nao funciona, é só pra ter uma idéia sobre o que eu quero saber de qual maneira é possível fazer sem utilizar dois comandos like.
Code Snippetselect
cdprd from dbo.Produtowhere
cdprd like ('%181104','%5489')Obrigado!!!
-
Olá Davi,
Normalmente o poder do LIKE é subestimado de fato. Conhecendo Regular Expressions você pode fazer muita coisa com ele. No entanto, devido ao seu fraco desempenho, algumas vezes de fato precisamos de outras alternativas. É possível fazer o que você pretente (creio eu). Dê uma olhada no exemplo abaixo:
Code SnippetCREATE
TABLE #TBLTESTE (VALOR VARCHAR(80))INSERT
INTO #TBLTESTE VALUES ('ALGO181104SUFIXO')INSERT
INTO #TBLTESTE VALUES ('ALGO5489SUFIXO')INSERT
INTO #TBLTESTE VALUES ('Um registro que tem 5489')INSERT
INTO #TBLTESTE VALUES ('Um último registro que não atende a consulta')SELECT
VALOR FROM #TBLTESTEWHERE
VALOR LIKE '%[181104][5489]%'DROP
TABLE #TBLTESTE[ ]s,
Gustavo