|
|
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
Подскажите мне такую вещь. Как в IBase и FB в запросе обращаться с NULL полем как с 0. например такой запрос: Код: plaintext не прокатит, если в Field_1 или Field_2 будит NULL, а как сделать, чтоб прокатил и пустое поле считалось бы как 0? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 17:41 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
1. Избавиться вовсе от нулл в этих полях. (default там или еще как...) 2. Использовать UDF 3. Использовать новые конструкции в расширенном диалекие SQL в последних версиях клонов ИБ. (when типа...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 17:55 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
а оно надо? null это null а не 0. если тебе нужен ноль, храни ноль. ну а если тебе пофигу, то попробуй select (case somefield is null then 0 else somefield) s_field from sometable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 17:56 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
в том то и проблема, что избавиться от NULL нельзя, так как появляется он в пробелах левого джойна 2х таблиц, и заполнить это место нулями никак ниполучится. А вот в догонку вопрос: что такое за функция такая в SQL - coalesce( ) , и какой у неё синтаксис, мне так кажется, что она тут как раз то и нужна... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 18:01 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
авторselect Field_1, Field_2, Field_1+Field_2 from Table не прокатит, если в Field_1 или Field_2 будит NULL, а как сделать, чтоб прокатил и пустое поле считалось бы как 0? FireBird 1.5: Код: plaintext Код: plaintext У InterBase 7.X тоже что-то похожее есть вроде бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 18:11 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
SELECT COALESCE(FIELD1,0) FROM ... Равноценно SELECT CASE WHEN FIELD1 IS NOT NULL THEN FIELD1 ELSE 0 END FROM ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 18:12 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
спасибо. но в IBase COALESCE не работает :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 18:18 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
и даже CASE WHEN он не хочет делать :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 18:25 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
А разве IB 7.X isnull не прикрутили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 18:31 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
ага, а у меня IBase 6 - вот где наверно засада. coalesce( ) и case в селекте не работают :(( ну всеравно обидно - как же так, складываю два поля, одно из них не NULL а получаю NULL :(( может можно это обойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 19:19 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
Видю два пути: 1. Сменить сервер на FB 1.5 2. Написать ХП и выбирать из нее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 19:27 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
Kull Damned путей маловато, и все они тернистые. но и на том спасиба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 19:31 |
|
||
|
NULL поле как 0
|
|||
|---|---|---|---|
|
#18+
Используй UDF ф-ю Z(a) из модуля rfunc.dll если поле типа DOUBLE, она как раз для этого и предназначена select Z(field1) from t для объявления примени: DECLARE EXTERNAL FUNCTION Z DOUBLE PRECISION RETURNS DOUBLE PRECISION BY VALUE ENTRY_POINT 'fn_z' MODULE_NAME 'rfunc'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 19:53 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32430074&tid=1579061]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 192ms |
| total: | 437ms |

| 0 / 0 |
