조건이 한 번만 검사되도록 SELECT
여러 열이 동일한 CASE WHEN
조건을 사용 하는 절 을 다시 작성하는 "더 나은"방법이 있습니까?
아래 예를 참조하십시오.
SELECT
CASE testStatus
WHEN 'A' THEN 'Authorized'
WHEN 'C' THEN 'Completed'
WHEN 'P' THEN 'In Progress'
WHEN 'X' THEN 'Cancelled'
END AS Status,
CASE testStatus
WHEN 'A' THEN authTime
WHEN 'C' THEN cmplTime
WHEN 'P' THEN strtTime
WHEN 'X' THEN cancTime
END AS lastEventTime,
CASE testStatus
WHEN 'A' THEN authBy
WHEN 'C' THEN cmplBy
WHEN 'P' THEN strtBy
WHEN 'X' THEN cancBy
END AS lastEventUser
FROM test
비 SQL 의사 코드에서 코드는 다음과 같습니다.
CASE testStatus
WHEN 'A'
StatusCol = 'Authorized'
lastEventTimeCol = authTime
lastEventUserCol = authUser
WHEN 'C'
StatusCol = 'Completed'
lastEventTimeCol = cmplTime
lastEventUserCol = cmplUser
...
END
노트 :
- 쿼리가 암시하는 명백한 정규화 문제를 알고 있습니다. 나는 단지 문제를 보여주고 싶었다.
비슷한 질문 : stackoverflow.com/q/13713316/4632019
—
Eugen Konkov
authTime
,authUser
,cmplTime
같은 테이블에?