반응형
PostgreSQL CASE… 여러 조건으로 종료
다음은 내 테이블의 발췌입니다.
gid | datepose | pvc
---------+----------------+------------
1 | 1961 | 01
2 | 1949 |
3 | 1990 | 02
1 | 1981 |
1 | | 03
1 | |
다음을 사용하여 PVC 열을 채우고 싶습니다 SELECT CASE
.
SELECT
gid,
CASE
WHEN (pvc IS NULL OR pvc = '') AND datpose < 1980) THEN '01'
WHEN (pvc IS NULL OR pvc = '') AND datpose >= 1980) THEN '02'
WHEN (pvc IS NULL OR pvc = '') AND (datpose IS NULL OR datpose = 0) THEN '03'
END AS pvc
FROM my_table ;
결과는 소스 테이블과 동일한 내용이며 아무 일도 일어나지 않았으며 pg_log 파일에 오류 메시지가 표시되지 않습니다. 구문 오류이거나 WHEN 절에서 여러 조건을 사용하는 데 문제가 있습니까?
도움과 조언에 감사드립니다!
이런 종류의 코드는 아마도 당신을 위해 일할 것입니다
SELECT
*,
CASE
WHEN (pvc IS NULL OR pvc = '') AND (datepose < 1980) THEN '01'
WHEN (pvc IS NULL OR pvc = '') AND (datepose >= 1980) THEN '02'
WHEN (pvc IS NULL OR pvc = '') AND (datepose IS NULL OR datepose = 0) THEN '03'
ELSE '00'
END AS modifiedpvc
FROM my_table;
gid | datepose | pvc | modifiedpvc
-----+----------+-----+-------------
1 | 1961 | 01 | 00
2 | 1949 | | 01
3 | 1990 | 02 | 00
1 | 1981 | | 02
1 | | 03 | 00
1 | | | 03
(6 rows)
참고 URL : https://stackoverflow.com/questions/27800119/postgresql-case-end-with-multiple-conditions
반응형
'code' 카테고리의 다른 글
Json.NET을 사용하여 모든 유형의 객체를 JObject로 변환 (0) | 2020.10.24 |
---|---|
플렉스 박스 레이아웃의 패딩-하단 / 상단 (0) | 2020.10.24 |
C #에서 Word 문서를 어떻게 만들 수 있습니까? (0) | 2020.10.24 |
KDIFF 병합에서 A, B 및 C는 무엇입니까? (0) | 2020.10.24 |
두 멤버 만있는 std :: pair와 std :: tuple의 차이점은 무엇입니까? (0) | 2020.10.24 |