MySQL: значение на основе условий

У меня есть запрос MySQL, где я хотел бы, чтобы он возвратил псевдо столбец, который базируется прочь:

  • Если columnW не равняется 0, это должно быть 1, НО
  • Если columnX не равняется 0, это должно быть 2, НО
  • Если columnY не равняется 0, это должно быть 3, НО
  • Если столбцы не равняются 0, это должно быть 4

Надо надеяться, это имеет смысл. Мой SQL не достаточно хорош для обертывания моей головы вокруг этого.

6
задан Tim Cooper 28 February 2010 в 20:17
поделиться

2 ответа

Попробуйте использовать выражение case :

SELECT CASE WHEN columnZ <> 0 THEN 4
            WHEN columnY <> 0 THEN 3
            WHEN columnX <> 0 THEN 2
            WHEN columnW <> 0 THEN 1
            ELSE 0
       END AS your_alias_name
FROM ...
9
ответ дан 10 December 2019 в 00:37
поделиться

Вы можете использовать CASE ... WHEN, чтобы сделать это.

См.

mysql> SELECT CASE 1 WHEN 1 THEN 'one'
    ->     WHEN 2 THEN 'two' ELSE 'more' END;
        -> 'one'
mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
        -> 'true'
mysql> SELECT CASE BINARY 'B'
    ->     WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
        -> NULL
1
ответ дан 10 December 2019 в 00:37
поделиться
Другие вопросы по тегам:

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