[firebase-br] Dúvida SQL
Paulo Geloramo
paulogeloramo em terra.com.br
Ter Out 30 17:05:08 -03 2007
Veja exemplos com case abaixo, retirado da pasta doc do Firebird 2.0:
SQL Language Extension: CASE
Function:
Allow the result of a column to be determined by a the results of a
case expression.
Author:
Arno Brinkman <firebird em abvisie.nl>
Format:
<case expression> ::=
<case abbreviation>
| <case specification>
<case abbreviation> ::=
NULLIF <left paren> <value expression> <comma> <value expression>
<right paren>
| COALESCE <left paren> <value expression> { <comma> <value
expression> }... <right paren>
<case specification> ::=
<simple case>
| <searched case>
<simple case> ::=
CASE <value expression>
<simple when clause>...
[ <else clause> ]
END
<searched case> ::=
CASE
<searched when clause>...
[ <else clause> ]
END
<simple when clause> ::= WHEN <when operand> THEN <result>
<searched when clause> ::= WHEN <search condition> THEN <result>
<when operand> ::= <value expression>
<else clause> ::= ELSE <result>
<result> ::=
<result expression>
| NULL
<result expression> ::= <value expression>
Notes:
See also README.data_type_results_of_aggregations.txt
Examples:
A) (simple)
SELECT
o.ID,
o.Description,
CASE o.Status
WHEN 1 THEN 'confirmed'
WHEN 2 THEN 'in production'
WHEN 3 THEN 'ready'
WHEN 4 THEN 'shipped'
ELSE 'unknown status ''' || o.Status || ''''
END
FROM
Orders o
B) (searched)
SELECT
o.ID,
o.Description,
CASE
WHEN (o.Status IS NULL) THEN 'new'
WHEN (o.Status = 1) THEN 'confirmed'
WHEN (o.Status = 3) THEN 'in production'
WHEN (o.Status = 4) THEN 'ready'
WHEN (o.Status = 5) THEN 'shipped'
ELSE 'unknown status ''' || o.Status || ''''
END
FROM
Orders o
----- Original Message -----
From: "João Paulo" <jpcarvalhoi2 em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, October 30, 2007 3:56 PM
Subject: [firebase-br] Dúvida SQL
Pessoal gostaria de saber se tem alguma forma de utilizar um "if" dentro do
select, fora de procedure.
A situação é a seguinte:
Tenho a tabela A com o campo X, de acordo com o valor do campo, por exemplo
valor = Y vou selecionar na Tabela B o Campo Y se o valor for Z vou
selecionar o Campo Z
Obrigado.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista