Сложный оператор CASE в SQL Server (сначала проверьте значение поля, затем выберите используемый CASE stmt)

Подтверждает oObject значение boolean. Если он был ложным (например, 0, null, undefined и т. Д.), Он будет false, в противном случае true.

!oObject  //Inverted boolean
!!oObject //Non inverted boolean so true boolean representation

Таким образом, !! не является оператор, это всего лишь оператор ! дважды.

Real World Пример «Test IE version»:

let isIE8 = false;  
isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);  
console.log(isIE8); // returns true or false 

Если вы ⇒

console.log(navigator.userAgent.match(/MSIE 8.0/));  
// returns null  

но если вы ⇒

console.log(!!navigator.userAgent.match(/MSIE 8.0/));  
// returns true or false
0
задан Greg 22 February 2019 в 20:04
поделиться

1 ответ

Привет, если я понимаю, что вы хотите, чтобы этот запрос работал:

select *,
    Case when schedule_at is not NULL THEN (CASE 
        when actual_start < schedule_at THEN 'Early'
        else 'Late'
        END) 
    ELSE
        (case 
            when actual_start between schedule_from and schedule_to THEN 'On Time'
            when datediff(minute,actual_start,schedule_from) < 0 THEN 'Late'
            else 'Early'
            END) END as Delivery
from some_dates_table
0
ответ дан pascal sanchez 22 February 2019 в 20:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: