Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Progjunior Daniel

Colocando uma condicao na query

Recommended Posts

E ai galera, to precisando da ajuda de voces. É o seguinte, tenho essa condicao:

and b.usu_reg_id >= 100

Só que essa condição só funciona para um campo

 b.usu_grues_id = 23 //e eu tenho mais 2 valores 21,22.

 

Minha pergunta é tem como eu colocar uma condição

if us_grues_id = 23 then and b.usu_reg_id >= 100 else //não faz nada

.

Isso em postgres.

Compartilhar este post


Link para o post
Compartilhar em outros sites

where ...
and b.usu_reg_id >= 100
and b.usu_grues_id = 23 

 

isto ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, o problema é que preciso colocar isso aqui tambem

and b.usu_grues_id in(21,22) 

 

E isso o sql da erro.

A condicao

and b.usu_reg_id >= 100 

 

Não pode funcionar para

and b.usu_grues_id in(21,22)

 

Só funciona para

and b.usu_grues_id =(23)

Compartilhar este post


Link para o post
Compartilhar em outros sites

where ...
and b.usu_reg_id >= 100
and b.usu_grues_id in (21,22,23)

 

Se não funcionar publica o SQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais as condições ?!

 

Para o usu_grues_id ?

 

Para o usu_reg_id ?

 

As condições são combinadas ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se entendi ...

 

where (
      (b.usu_reg_id >= 100 and b.usu_grues_id = 23)
      or
      (b.usu_grues_id <> 23)
     )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente escrever a regra, fica mais fácil implementar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pensei em algo do tipo.

 

Se o usuário é Membro pode excluir seu tópico.

Se o usuário é Moderador pode excluir tópico de sua área.

Se o usuário é Admin pode excluir tópico de qualquer área.

 

mas

 

if (us_grues_id = 23 )

{

and b.usu_reg_id >= 100

}

//true/false ?!

else

{

true;

//nao faz nada

}

 

Lembre que a condição WHERE num select faz com se traga ou não aquele registro específico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguintes, todos os registros existentes nesse campo menores que 100 são teste que os caras fizeram. Então não posso pegar esses dados, porque são todos teste, não valem nada. E todos os dados ate mesmo os testem, não são validos excluir, para ter registro no banco sempre é bom.

Compartilhar este post


Link para o post
Compartilhar em outros sites

where b.usu_reg_id >= 100

 

só isto então.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.