Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Слияние полей в MDB [D7, MDB]


_Max ©   (2005-06-01 09:31:00) 

select F1 + F2
from test.db
есть таблица вида

F1   F2  Code
-------------
a1   b1  1
a2       2
a3   b3  3

Запрос
select F1 + F2
from test.db
выдаёт требуемый мне результат (слияние полей)

а1b1
a2
a3b3

Проблема заключается в том, что если я использую
базу MDB, - то слияние с полем имеющим значение null
не происходит. Возвращается только
a1b1
a3b3

Вопрос в том, как можно в mdb получить слияние полей?


_Max   (2005-06-01 12:32:00) [1]

>sniknik
спасибо большое. То, что нужно


ANB   (2005-06-01 10:51:00) [2]


> зачем тогда даеш? и не предупреждаеш сразу что это не то.
> обман получается.
- вообще то я ANSI дал. Просто case не во всех СУБД реализован (ИМХО). В оракле я NVL юзаю. Это для примера - как решать проблему. А для конкретного решения пусть хэлп по своей СУБД смотрит. Автор то попробовал или нет ?


sniknik   (2005-06-01 10:48:00) [3]

> так как я оракловый синтаксис тебе даю, а про MDB никогда не слышал.
зачем тогда даеш? и не предупреждаеш сразу что это не то. обман получается.

> [7]
ошибочка "вкралась" несущественная ;), во втором условии F1 на F2 поменять надо бы, а то будет просто строки двоить. думаю и так бы увидел, без этого предупреждения.


sniknik   (2005-06-01 10:44:00) [4]

для аксес
select iif(IsNull(F1),'',F1)+iif(IsNull(F2),'',F1) from test


_Max   (2005-06-01 10:14:00) [5]

в Oracle то - это да. Там возможности шире...


ANB   (2005-06-01 10:10:00) [6]

select (case when F1 is null then '' else F1 end) + F2 from Test.db

А вообще не мешало бы хелп посмотреть, так как я оракловый синтаксис тебе даю, а про MDB никогда не слышал.


_Max   (2005-06-01 09:57:00) [7]

Точно ли именно такой синтаксис ?

select (case F1 is null then '' else F1)
Выдаёт ошибку:
Ошибка синтаксиса (пропущен оператор) в выражении запроса
'(case F1 is null then '' else F1)'


ANB   (2005-06-01 09:48:00) [8]

Зачем ? Прямо в селекте. По моему, case для ХП не очень предназначен, его в селеках юзают.


_Max   (2005-06-01 09:44:00) [9]

> ANB в процедуре хранимой ?


ANB   (2005-06-01 09:39:00) [10]

(case F1 is null then '' else F1)


Наверх

Титульная страница Поиск, карта сайта Написать письмо