![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Interbase. Как в select запрос вставить выбор (if или case)?
novill © (2006-08-18 17:03:00)
Select if F1>100 then 'больше' else 'меньше' from table1
Подскажите синтаксис. Не могу найти описания в описании (language reference).
Приведенный пример выдает ошибку, что не знает слова if.
Dok (2006-08-19 10:27:00) [1]Использовать ХП
PEAKTOP (2006-08-18 17:49:00) [2]Сорри, предыдущий пост оффтоп. У тебя Интербаза, на ней наверное не прокатит.
Все выше перечисленное начал использовать с версии Firebird v1.5.3.4870.
PEAKTOP (2006-08-18 17:43:00) [3]Оригинальная документация:
=====================================================================
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@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
Desdechado (2006-08-18 17:39:00) [4]В описании FB есть это.
Только в ReleaseNotes читать надо.