다음 쿼리에서 두 개의 사례를 사용하여 대응 결과 & 승인 유형을 얻습니다. Oracle SQL에서 아래 쿼리를 실행하는 동안 daction_1 & 승인 유형 _1 (daction & 승인 유형 열)의 두 개의 새로운 임시 열이 생성됩니다. 자, IDOC 코드에서 이러한 키워드를 사용하고 싶지만 temp 열이 만들어지기 때문에 사용할 수 없습니다. 이 문제를 해결하는 방법?Oracle SQL Case 문에서 키워드로 끝내기
SELECT WH.dActionDate,
WH.xWF_SendTo,
WH.dAction,
ATY.ApprovalType,
WH.xWorkflowComments,
CASE
WHEN NVL(ApprovalType,'') IS NULL
THEN xPurposeForRejection
ELSE ApprovalType
END AS ApprovalType,
CASE
WHEN NVL(dAction,'') ='SendTo'
AND NVL(ApprovalType,'') IS NOT NULL
OR NVL(dAction,'') ='Approve'
THEN 'Approve'
ELSE 'Reject'
END AS dAction
FROM WorkflowHistory WH,
Reason Re,
ApprovalType ATY
WHERE UPPER(dDocName) = UPPER('D_1239178')
AND xPurposeForSubmission = Re.ReasonID(+)
AND xDocApproval = ATY.ApprovalTypeID(+)
AND (dAction IN('Reject','Approve')
OR (dAction ='SendTo'
AND ApprovalType IS NOT NULL))
AND ROWNUM <= 5
ORDER BY dActionDate DESC,
dActionMillis
먼저 IDOC은 무엇을 나타 냅니까? 둘째, MySQL과 Oracle에 대해이 태그를 붙였습니다. 두 분 중 어느 분이 정말로 사용하십니까? 세 번째로, 왜 당신이 이미 선택하고있는 열과 일치하는 별명을 사용하도록'CASE' 문을 앨리어싱하는 것입니까? 왜 두 가지를 구별 할 수있는 고유 한 별칭을 선택하지 않았습니까? –
Oracle에서 빈 문자열은 Null로 처리되므로 Nvl (dAction, '')은 dAction –