Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> select FIO||NAME||OTCH, а если Name='Null' 
:(
    Опции темы
pavelv
Дата 30.10.2006, 06:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Объединяю следующую штуку, и если не было указано Name, тоесть в БД оно NULL, то результатом объединения получается NULL. Думал с помощью NULLIF или COALESCE, но они почему-то не доступны у меня(FireBird 1.5 стоит). У кого-нибудь есть идеи как ещё можно решить эту проблему(UNION не предлагать из-за появления дубликатов).

Это сообщение отредактировал(а) pavelv - 30.10.2006, 06:51
PM MAIL   Вверх
Alex
Дата 30.10.2006, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



строка из реального запроса выполняемого под FB1.5.2
Код

...
coalesce(fam || ' ', '') || coalesce(imij || ' ', '') || coalesce(otch, '')
...



--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
pavelv
Дата 30.10.2006, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



у меня firebird 1.5, на сервере(сказали) тоже firebird 1.5. У меня обе функции работают, на серваке фиг татам...
Код

An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
NULLIF.

Вот такая вот ошибка, поэтому и спрашиваю о других способах.
PM MAIL   Вверх
Akella
Дата 30.10.2006, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



ты сам проверь, что там за версия.
Порекомендуй поставить 2.0
PM MAIL   Вверх
pavelv
Дата 30.10.2006, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Такой возможности нет, есть куча машин помимо серваков и на каждой это переставлять...слишком муторный способ, проще через UNION делать, невзирая на его тормоза.
PM MAIL   Вверх
Akella
Дата 30.10.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(pavelv @  30.10.2006,  12:16 Найти цитируемый пост)
Такой возможности нет, есть куча машин помимо серваков и на каждой это переставлять.

что на каждой машине FB установлен  smile ?
Круто. Я тоже знаю одно такого админа, который на все машины ставит FB.
PM MAIL   Вверх
Alex
Дата 30.10.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



Цитата(Akella @  30.10.2006,  17:21 Найти цитируемый пост)
Круто. Я тоже знаю одно такого админа, который на все машины ставит FB. 

Сервер не на каждой, а клиенскую библиотеку на каждой smile 


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
pavelv
Дата 31.10.2006, 05:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Цитата
Сервер не на каждой, а клиенскую библиотеку на каждой

Я не админ, но вышесказанное должно быть точно smile. Похоже действительно кроме UNION-а вариантов нет smile.
PM MAIL   Вверх
Alex
Дата 31.10.2006, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 7
Всего: 162



pavelv, а компоненты доступа ты какие используешь в программе?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Akella
Дата 31.10.2006, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(pavelv @  31.10.2006,  05:22 Найти цитируемый пост)
Похоже действительно кроме UNION-а вариантов нет 

что-то я тебя не пойму.
Разница между
Код
Select t1.f1, t2.f2, t3.f3 from t1, t2, t3

и
Код

Select f1 from t1
union all
Select f2 from t2
union all
Select f3 from t3

колосальная
PM MAIL   Вверх
pavelv
Дата 1.11.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 5.2.2006

Репутация: нет
Всего: нет



Что касатеся компонентов думаю они не важны, я проверяю запросы через IB_Expert сначала.
Не понимаешь, значит не сталкивался smile.
Запрос:
Код

select 1,2,3,4,5,6,7,8||9||10,asd
from A,B,C,D,E,F
where {куча условий}

Если 10ое поле NULL то 8||9||10 тоже оказывается NULL, но извините, а что если это адрес какого-то объекта. Тоесть к примеру не указан просто дом, а город и улица введены корректно. Выход или через функции которые я писал, или через:
Код

select 1,2,3,4,5,6,7,8||9,asd
from A,B,C,D,E,F
where {куча условий} AND 10 is NULL
UNION
select 1,2,3,4,5,6,7,8||9||10,asd
from A,B,C,D,E,F
where {куча условий} AND 10 is not NULL

Но на больших таблицах ощутима разница, при быстром переключении доли секунды тратятся на запрос и ощущается торможение.



Это сообщение отредактировал(а) pavelv - 2.11.2006, 08:13
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.