Fórum Exists no Interbase #38179

21/08/2003

0

Galera, eu sei que existe um jeito em SQL de fazer um if para ver se existem dados em uma determinada select. Mas não sei a sintax e nem se o IB aceita. Queria algo como:

SELECT
NOMEBANCO,
(SELECT MAX(PKPARCE_ALUNOS) FROM PARCE_ALUNOS) AS PKPARCE,
IF EXISTS(SELECT CADASTRO FROM PARCE_ALUNOS WHERE CADASTRO=´001002481´) alguma coisa.
FROM
BANCO


Adriano Santos

Adriano Santos

Responder

Posts

21/08/2003

Afarias

o comando IF só está disponível em STORED PROCEDURES e TRIGGERS, o EXISTS pode ser usado com IF ou na cláusula WHERE de um SELECT.

exemplo::

select * from tabela1 where exists (select 1 from tabela2 where tabela2.codigo = tabela1.codigo)


T+


Responder

Gostei + 0

22/08/2003

Adriano Santos

Não tem nenhum forma de exists na select? mesmo sem IF???


Responder

Gostei + 0

22/08/2003

Afarias

Não, só na cláusula WHERE do comando SELECT.

Más, o q vc quer fazer afinal?!? Pode ser q seja possível de outra forma.


T+


Responder

Gostei + 0

22/08/2003

Adriano Santos

Seria algo como;

Select Valor1, Valor2, ´IF´ Exists(Select ID FROM CONTROLE WHERE CONTROLE > 5) as XXX ´THEN TRAZ O CAMPO YYYY´ From Banco

ou seja, se existir um determinado tipo de registro na tabela controle então a select traz o campo YYYY senão não traz, sei que é absurdo, mas é mais ou menos isso.


Responder

Gostei + 0

22/08/2003

Afarias

não existe relação entre a tabela Banco e Controle ??

Bom, vc pode fazer isso facilmente com StoredProcedure ou talvês (não sei se entendi bem) provavelmente com uso do CASE se estiver usando FB 1.5

Sendo q o campo não deixaria de existir, apenas poderia ser colocado NULO.

Para realmente ´RETIRAR´ a coluna, vc deverá verificar a condição e alterar o SQL no cliente.


T+


Responder

Gostei + 0

13/09/2003

Fabiocarige

Em vez de usar o Select puro.
Construa uma stored procedure que retorne os mesmos valores que o Select que iria usar. Desta forma vc poderá usar a clausula EXISTS.

Outra forma seria colocar o SELECT com as clausulas Restritivas em uma Query. E no delphi fazer:
IF QUERY.RECORDCOUNT >0 THEN
//O Select Retornou valor logo o Registro Existe.
ELSE
//O Registro não existe.


Responder

Gostei + 0

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

Aceitar