Принудительный результат запроса, если истина - PullRequest
1 голос
/ 26 июня 2019

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

SELECT cust.adm, COUNT(visits.visit_date) as visit_count FROM cust
LEFT JOIN visits ON cust.cust_id = visits.cust_id
WHERE cust.cust_id = 1
GROUP BY cust.adm

результаты таковы:

   adm   |   visit_count
--------------------------
  TRUE   |        0

Есть ли способ навязать результат '3' для 'visit_count'?ЕСЛИ адм это правда?

Ответы [ 2 ]

2 голосов
/ 26 июня 2019

Вы можете использовать выражение case:

SELECT    cust.adm,
          CASE cust.adm WHEN TRUE THEN 3 ELSE COUNT(visits.visit_date) END AS visit_count 
FROM      cust
LEFT JOIN visits ON cust.cust_id = visits.cust_id
WHERE     cust.cust_id = 1
GROUP BY  cust.adm
1 голос
/ 26 июня 2019

Это действительно заставляет.Не зная, чего ты пытаешься достичь, это все, о чем я могу думать.

SELECT cust.adm, 
    CASE WHEN cust.adm THEN 3 ELSE COUNT(visits.visit_date) END as visit_count
FROM cust
    LEFT JOIN visits ON cust.cust_id = visits.cust_id
    WHERE cust.cust_id = 1
    GROUP BY cust.adm
...