PostgreSQL 8.2를 사용하고 있으며 PostgreSQL을 처음 사용합니다.PostgreSQL : CASE를 사용하여 where 절에 조건 추가
필드의 특정 값 (49) (activity.type)에 따라 하나의 조건을 WHERE 절에 추가해야합니다.
SELECT activity.*
FROM activity
LEFT JOIN event_types ON activity.customstatusid = event_types.id, getviewableemployees(3222, NULL) AS report
WHERE
(
CASE WHEN activity.type = 49 THEN
'activity.individualid IN(SELECT individualid from prospects where prospects.individualid = activity.individualid)'
ELSE 1
END
)
AND activity.date BETWEEN '2016-10-01' AND '2016-10-06'
AND activity.type IN (21, 22, 49, 50, 37, 199)
AND (event_types.status = 1 or event_types.status IS NULL);
내가 PGSQL의 명령 줄 액세스 쿼리 위의 실행 후 나는 오류가 아래 얻을 :
ERROR: invalid input syntax for integer: "activity.individualid IN(SELECT individualid from prospects where prospects.individualid = activity.individualid)"
내가 여기 실종 여기 내 검색어는?
WHERE 절에서 구현하려는 논리는 무엇입니까? –
나는 activity.type = 49를 확인한 다음 잠재 고객 테이블에서 activity.individualid를 확인하는 다른 하위 쿼리를 반환하는 CASE를 사용하고 있습니다. 이것은 구현하려고하는 논리입니다. – deltaforce
분명히, 당신은 이것을 할 수는 없지만 @donkopotamus에 의한 답을 살펴보십시오. 이것은 여러분이 염두에 두었던 것처럼 보입니다. –