Я использую версию mysql для mariaDB, и мой результат запроса следующий
select count(*) as 'Non-HT Computes', vcpus_used as 'Status'
from compute_nodes
WHERE deleted_at is NULL
AND hypervisor_hostname LIKE '%sriov%'
AND vcpus < '21'
GROUP BY vcpus_used
+-----------------+--------+
| Non-HT Computes | Status |
+-----------------+--------+
| 20 | 0 |
| 5 | 16 |
+-----------------+--------+
Это то, что я пытаюсь сделать, если в столбце Status
значение 0
, затем выведите Available
и если значение находится в диапазоне от 16
до 20
значение печати In-used
, как мне изменить результат возвращаемых значений на лету?
Окончательный результат должен выглядеть как
+-----------------+----------------+
| Non-HT Computes | Status |
+-----------------+----------------+
| 20 | Available |
| 5 | In-Used |
+-----------------+----------------+
Я пробовал использовать оператор CASE
, но не знаю, как его совместить со столбцом alias Status
, потому что Status
псевдо столбец.
Изменить:
Я зашел так далеко, но не могу узнать, как напечатать Non-HT Computes
таблицу: (
select CASE WHEN Status = 0 THEN 'available' ELSE 'In-used' END AS Status from (select count(*) as 'Non-HT Computes',vcpus_used as 'Status' from compute_nodes WHERE deleted_at is NULL AND hypervisor_hostname LIKE '%sriov%' AND vcpus < '21' GROUP BY vcpus_used) as a
+-----------+
| Status |
+-----------+
| available |
| In-used |
+-----------+