Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Srs, bom dia!
Qual a função no Qlik view que se assemelha a função Like do sql server?
Quero trazer registros que contenham no meio o texto 'RET'.
Conforme respondido pelo Cesar Accardi, a função que faz a mesma tratativa que o LIKE é a WILDMATCH
Exemplo de utilização:
Retornar somente as palavras que contém "RET" em qualquer posição do texto
if( WILDMATCH( COLUNA, '*RET*')>0, COLUNA)
Lembrando que a função WILDMATCH não é sensível a caracteres maiúsculos e minúsculos, desta forma tanto faz '*RET*' ou '*ret*' ou '*rEt*' etc.
Caso você deseja negar o like, basta utiliza o "=0" , por exemplo:
if( WILDMATCH( COLUNA, '*RET*')=0, COLUNA)
Vale a pena dar uma olhada nesta função e também nas funções que se assemelham como por exemplo: MATCH e MIXMATCH.
O próprio Like:
Load * From Teste.qvd (qvd)
Where ColunaA Like ('*RET*');
Abs.
Egnaldo, obrigado pela resposta. Acho que me expressei mal.
No caso o Like seria na criação de uma dimensão.
Tenta isso:
=Aggr(Only({<ColunaA = {'*RET*'}>} ColunaA),ColunaA)
Abs:
Ola Leonardo,
Se caso tiver problemas de performance com o uso do Aggr que o Egnaldo sugeriu voce pode tentar tambem adicionar o set analysis "{<ColunaA = {'*RET*'}>}" nas suas expressoes ao invez de adicionar a dimensao ou ainda escrever a dimensao dessa forma: if(WildMatch(ColunaA,'*RET*',ColunaA).
Abracos,
Cesar
Egnaldo, fucionou direitinho, porém fui criar um filtro para trazer tudo o que não contem RET a função não funcionou.
Só para eu entender, você precisa de selecionar tudo que não contem RET, é isso?
Exemplo:
> Contém RET
> Não contém RET
Abs
Conforme respondido pelo Cesar Accardi, a função que faz a mesma tratativa que o LIKE é a WILDMATCH
Exemplo de utilização:
Retornar somente as palavras que contém "RET" em qualquer posição do texto
if( WILDMATCH( COLUNA, '*RET*')>0, COLUNA)
Lembrando que a função WILDMATCH não é sensível a caracteres maiúsculos e minúsculos, desta forma tanto faz '*RET*' ou '*ret*' ou '*rEt*' etc.
Caso você deseja negar o like, basta utiliza o "=0" , por exemplo:
if( WILDMATCH( COLUNA, '*RET*')=0, COLUNA)
Vale a pena dar uma olhada nesta função e também nas funções que se assemelham como por exemplo: MATCH e MIXMATCH.
Isso. Que não contenham RET
Bom dia, pessoal!
Vou aproveitar este mesmo tópico para tirar uma dúvida:
Eu preciso avaliar um determinado filtro da seguinte maneira:
se o campo AnoMes_Vigencia estiver filtrado e dentro dos itens selecionados estiver o valor correspondente ao mês imediatamente anterior ao mês corrente, então eu continuarei depois com a sequencia da minha expressão.
A identificação do mês eu consegui através da função: (YEAR(TODAY())& num((month(today())-1),'00')) -> pois meu campo AnoMes_Vigencia está preenchido com 201601, 201602, 201603 e assim por diante.
Usando a expressão: if((GetFieldSelections(AnoMes_Vigência) like '201603') = 0, 'Não','Sim'), eu consigo avaliar apenas quando o filtro possui somente o valor 201603. Se eu filtrar, por exemplo, 201602 E 201603, a função retorna 'Não' - eu gostaria que retornasse sim, pois 201603 está contido no filtro.
Além disso, eu precisaria que fosse algo dinâmico, que atualizasse automaticamente conforme os meses vão caminhando. Estou tentando executar a função abaixo, porém sem sucesso:
if((GetFieldSelections(AnoMes_Vigência) like (trim((YEAR(TODAY())& num((month(today())-1),'00'))))) = 0, 'Não','Sim')
Apenas para confirmar, eu não consigo usar like com uma expressão? Precisa ser necessariamente um valor determinado?
Muito Obrigado!