Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 09.12.2016, 11:55   #1
nactyx
Форумчанин
 
Регистрация: 11.10.2010
Сообщений: 136
Репутация: 10
По умолчанию Условие ЕСЛИ в 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, 12:17   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк, Украина
Сообщений: 15,896
Репутация: 5728
По умолчанию

При условии, что нет множественных связей так можно. Синтаксис от СУБД зависит. На будущее - всегда нужно указывать СУБД, это почти так же как, код на паскале отличается от кода на Си
Код:

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, 12:25   #3
nactyx
Форумчанин
 
Регистрация: 11.10.2010
Сообщений: 136
Репутация: 10
По умолчанию

Поясните только вот этот момент, пожалуйста:
Код:

ISNULL(a1.id_firm, a2.id_firm)

Upd. Сам разобрался. Если первое NULL, вернет второе. То, что нужно!)

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

Последний раз редактировалось nactyx; 09.12.2016 в 12:30.
nactyx вне форума   Ответить с цитированием
Старый 09.12.2016, 12:31   #4
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк, Украина
Сообщений: 15,896
Репутация: 5728
По умолчанию

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



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




04:53.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru