Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2016, 10:55   #1
nactyx
Форумчанин
 
Регистрация: 11.10.2010
Сообщений: 152
По умолчанию Условие ЕСЛИ в SQL

Всем доброго времени суток! Никогда не довелось поработать с условиями в реалиях SQL, но вот теперь понадобилось и я немного в ступоре, подскажите, коллеги.

Есть два запроса. И итоговая переменная, пусть будет FIRMA.
Мне нужно, чтобы сперва отработал первый запрос, и если в результате его работы есть число - то запомнить это число в FIRMA. Если нет, то отработать должен второй и свой результат запомнить в FIRMA (у второго по-любому будет результат).

1й запрос (пример):
Код:
select a.id_firm from prtb_op_structs a
inner join people b
on a.struct_code = b.Struct_Code and b.pid = 4200253
2й запрос (пример):
Код:
select a.id_firm from StructS a
inner join people b
on a.struct_code = b.Struct_Code and b.pid = 4200253
Заранее благодарю за помощь!
nactyx вне форума Ответить с цитированием
Старый 09.12.2016, 11:17   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

При условии, что нет множественных связей так можно. Синтаксис от СУБД зависит. На будущее - всегда нужно указывать СУБД, это почти так же как, код на паскале отличается от кода на Си
Код:
SELECT ISNULL(a1.id_firm, a2.id_firm) AS id_firm
  FROM people b
    LEFT JOIN prtb_op_structs a1 ON a1.struct_code = b.Struct_Code
    LEFT JOIN StructS a2 ON a2.struct_code = b.Struct_Code
  WHERE b.pid = 4200253
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.12.2016, 11:25   #3
nactyx
Форумчанин
 
Регистрация: 11.10.2010
Сообщений: 152
По умолчанию

Поясните только вот этот момент, пожалуйста:
Код:
ISNULL(a1.id_firm, a2.id_firm)
Upd. Сам разобрался. Если первое NULL, вернет второе. То, что нужно!)

Аватар, в очередной раз Вам спасибо, то, что нужно. P.S. Насчет СУБД на будущее замечание учту. Хорошей Вам пятницы и выходных!

Последний раз редактировалось nactyx; 09.12.2016 в 11:30.
nactyx вне форума Ответить с цитированием
Старый 09.12.2016, 11:31   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А чего его пояснять? Вбивай в поисковик SQL ISNULL и куча пояснений на разный вкус
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
условие если выполняется частично ALE_s_HA Microsoft Office Excel 1 29.03.2016 21:55
Условие если Turboman Общие вопросы Delphi 12 23.02.2013 15:24
Условие: Если книга НЕ открыта ruavia3 Microsoft Office Excel 1 04.02.2010 11:35
Условие, если есть лист. agregator Microsoft Office Excel 5 08.12.2009 07:46
условие если значение = empty zetrix Microsoft Office Excel 0 30.10.2006 18:58