Имя: Пароль:
1C
 
В запросе. Выбор когда тогда иначе конец )))
0 0level
 
10.07.17
21:35
Подскажите,  значение какого поля возьмется в результат запроса, если оба условия "когда" выполняются, то есть истина.

ВЫБОР
    КОГДА ВТОсновныеНачисления.ОтработаноЧасов ЕСТЬ НЕ NULL
        ТОГДА ВТОсновныеНачисления.ОтработаноЧасов
    КОГДА ВТРабочеВремя.Часов ЕСТЬ НЕ NULL
        ТОГДА ВТРабочеВремя.Часов
иначе 0

конец
1 Dен
 
10.07.17
21:38
(0) Первого.
2 Lexey_
 
10.07.17
21:39
(0) проверить же можно
3 0level
 
10.07.17
21:53
(1) спасибо
(2) Да, вы правы не сообразил простеньким запросом проверить

ВЫБРАТЬ
    ВЫБОР
        КОГДА 1 = 1
            ТОГДА 1
        КОГДА 2 = 2
            ТОГДА 2
        ИНАЧЕ 0
    КОНЕЦ КАК Поле1

результат "1"
4 cons74
 
11.07.17
06:56
Я бы не стал полагаться на "всегда отработает первое", а то мало ли что. Потом пойди найди причину сбоя запроса.
5 youalex
 
11.07.17
07:02
(4)
Поисковое выражение CASE:
Вычисляет в указанном порядке выражения Boolean_expression для каждого предложения WHEN.
Возвращает выражение result_expression, соответствующее первому предложению WHEN, для которого выражение Boolean_expression имеет значение TRUE.
Если ни одно выражение Boolean_expression не вычисляется в TRUE, компонент Database Engine возвращает выражение else_result_expression, если указано предложение ELSE, или значение NULL, если предложение ELSE не указано.

https://msdn.microsoft.com/ru-ru/library/ms181765(v=sql.105).aspx