Как использовать case в 'where' на сервере MySQL - PullRequest
0 голосов
/ 15 февраля 2019

Я получаю сообщение об ошибке,

Недопустимое выражение в условии внутри регистра.

при запуске MySQL:

WHERE
    CASE
        WHEN TBL1.Reissued<>'1'
            THEN
                fare IS NOT NULL
                AND 
                fare <> 0.00
    END

WHERE
    fare IS NOT NULL
    AND 
    fare <> 0.00

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Для функции SQL case я думаю, что она возвращает значение или только столбец таблицы.Пожалуйста, обратитесь к этой ссылке для получения вашей информации.

С моей точки зрения, похоже, что вы хотите манипулировать оператором SQL в процессе соединения двух таблиц при некотором условии.Вы можете использовать left join, чтобы присоединиться к нему, и использовать case, чтобы управлять выбранным полем.

0 голосов
/ 15 февраля 2019

Во-первых, fare IS NOT NULL AND fare <> 0.00 можно упростить до fare <> 0.00, потому что любое условие исключит NULL, поскольку каждое сравнение со значением NULL оценивается как unknown, что можно считать ложным.

Теперь вы можете использовать такое условие:

where (TBL1.Reissued<>'1' and fare <> 0.00) or TBL1.Reissued='1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...