Fórum Consulta SQL com Case dentro do Where #60226

11/10/2008

0

Tenho que fazer a seguinte consulta:
´
SELECT CASE CLIENTES.TIPOPESSOA WHEN ´Jurídica´
THEN CLIENTES.FANTASIA ELSE CLIENTES.NOME END
AS NOME_OU_FANTASIA FROM CLIENTES
´
Se o cliente for pessoa jurídica a consulta trará o conteúdo do campo fantasia em NOME_OU_FANTASIA se não for, trará o conteúdo do campo nome. Simples, não?
A dúvida: quero trazer apenas os clientes cuja primeira letra for M, por exemplo.
Minha primeira idéia foi: ´WHERE FANTASIA LIKE:VPrimeiraLetra OR NOME LIKE:VPrimeiraLetra´, mas aí mesmo que TIPOPESSOA = Jurídica, a SQL mostraria o registro se FANTASIA começasse com ´M´ [b:7b10596dda]ou[/b:7b10596dda] se NOME começasse com ´M´, o que obviamente não seria correto.

Consegui me explicar? Podes me ajudar como fazer esse where?
Brigadin...


Armindo

Armindo

Responder

Posts

11/10/2008

Emerson Nascimento

adiocione sua condição ao where:
SELECT
  CASE CLIENTES.TIPOPESSOA WHEN ´Jurídica´
    THEN CLIENTES.FANTASIA
    ELSE CLIENTES.NOME
  END AS NOME_OU_FANTASIA
FROM
  CLIENTES
WHERE
  (CLIENTES.TIPOPESSOA = ´Jurídica´ and FANTASIA LIKE :VPrimeiraLetra)
  OR (CLIENTES.TIPOPESSOA = ´Física´ and NOME LIKE:VPrimeiraLetra)



Responder

Gostei + 0

11/10/2008

Armindo

adiocione sua condição ao where:
SELECT
  CASE CLIENTES.TIPOPESSOA WHEN ´Jurídica´
    THEN CLIENTES.FANTASIA
    ELSE CLIENTES.NOME
  END AS NOME_OU_FANTASIA
FROM
  CLIENTES
WHERE
  (CLIENTES.TIPOPESSOA = ´Jurídica´ and FANTASIA LIKE :VPrimeiraLetra)
  OR (CLIENTES.TIPOPESSOA = ´Física´ and NOME LIKE:VPrimeiraLetra)


Perfeito emerson. Às vezes a solução é simples gente procura uma complexa. Hehe!
Obrigadão.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar