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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2016, 14:36   #1
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию SQL Access Case

добра вам, дамы и господа. вопрос следующий
есть у меня вот такой запрос
Код:
SELECT
 Otvet.Otvet,
 Vopros.Variant1,
 Vopros.Variant2,
 Vopros.Variant3,
 Vopros.Vopros,
 (IIf(Otvet.Otvet=0,Vopros.Variant1,(IIf(Otvet.Otvet=1,Vopros.Variant2,Vopros.Variant3))))
FROM Vopros 
INNER JOIN Otvet ON Vopros.id_Vopros=Otvet.id_vopros;
я считаю не совсем правильно использовать структуру подобную If then else в данном случае, нет ли в SQL Access какого аналога case(в Pascal) и если есть какой у него синтаксис??
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Stilet; 15.01.2016 в 15:55.
Dvoishnik вне форума Ответить с цитированием
Старый 15.01.2016, 14:51   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

насколько мне известно - нет CASE в SQL диалекте MS Access не поддерживается.
а чем Вас IIF не устраивает? (ведь, по сути это тоже самое!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.01.2016, 15:03   #3
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а чем Вас IIF не устраивает?
люблю когда все красиво, а тут нагромождение скобок и операторов
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 15.01.2016, 15:07   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Просто так ни чего не бывает красивым. Так красивше? И скобки лишние к ногтю
Код:
SELECT Otvet.Otvet, Vopros.Variant1, Vopros.Variant2, Vopros.Variant3, Vopros.Vopros,
  IIf(Otvet.Otvet=0,
      Vopros.Variant1,
      IIf(Otvet.Otvet=1,
          Vopros.Variant2,
          Vopros.Variant3)) AS Variant
  FROM Vopros
    INNER JOIN Otvet ON Vopros.id_Vopros=Otvet.id_vopros;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.01.2016, 15:17   #5
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Просто так ни чего не бывает красивым. Так красивше?
красивее, красивее


Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
SELECT Otvet.Otvet, Vopros.Variant1, Vopros.Variant2, Vopros.Variant3, Vopros.Vopros,
  IIf(Otvet.Otvet=0,
      Vopros.Variant1,
      IIf(Otvet.Otvet=1,
          Vopros.Variant2,
          Vopros.Variant3)) AS Variant  //это же тип данных вы указываете я правильно понял??
  FROM Vopros
    INNER JOIN Otvet ON Vopros.id_Vopros=Otvet.id_vopros;
а зачем тип данных вычисляемого поля указывать?? тем более как Variant ?
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 15.01.2016, 15:21   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

То не тип данных, а псевдоним, назвал как назвал, по аналогии . С этим именем и в программе к нему обращаться можно. Тип данных зависит от Variant1, Variant2, Variant3. Он должен быть согласованным у этих полей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 15.01.2016 в 15:24.
Аватар вне форума Ответить с цитированием
Старый 15.01.2016, 15:34   #7
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

понял, понял. вместо стандартного ExprЦИФОРКИ будет красивое название спасибо буду знать
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
T-SQL -е несколько вычисляемые поля попасную CASE xxbesoxx SQL, базы данных 7 12.07.2015 23:48
T-SQL Выражение CASE xxbesoxx SQL, базы данных 24 24.06.2015 12:40
поиск дублей в нескольких таблицах Access (Access +SQL) Delphi_developer Помощь студентам 3 26.09.2012 16:46
как правильно сделать case в Access Ам тя Помощь студентам 0 25.10.2011 22:52
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09