Могу ли я использовать SQL для отображения пользовательского текста, основанного на значении столбца? - PullRequest
2 голосов
/ 16 мая 2019

Есть ли способ показать разные строки в зависимости от значения, найденного в столбце?

т.е.

SELECT value FROM table;

+--------+
| value  |
+--------+
|      1 |
|      0 |
|      1 |
|      1 |
+--------+

Мне нужен следующий вывод:

+--------+
| value  |
+--------+
|    yes |
|     no |
|    yes |
|    yes |
+--------+

Как?

Ответы [ 2 ]

5 голосов
/ 16 мая 2019

Интересный способ сделать это использует elt():

select elt(value + 1, 'no', 'yes')

elt() возвращает n-ю строку на основе первого аргумента.

4 голосов
/ 16 мая 2019

Используя оператор CASE, вы можете получить ожидаемый результат:

SELECT CASE WHEN value = 1 THEN 'yes' 
            WHEN value = 0 THEN 'no' 
            ELSE '' 
       END AS value
FROM testtable;

или с использованием IF выписка

SELECT IF(value = 1, 'yes', IF(value = 0, 'no', '')) AS value
FROM testtable;

Демонстрация по дб <> fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...