<TMI>
원래 문제에서는 "보너스 포함 연봉" 별칭 생성후 결과값을 확인하는 것이다. 데이터상 보너스가 null인 것들도 있기 때문에 결과값도 null이 되는 문제가 발생한다. 따라서 본인은 null값이 아닌 (= 보너스 포함 연봉이 존재하는 값)들을 where절에 넣어 해당하는 값들만 조회하고자한다.
SELECT EMP_NAME, SALARY, BONUS, SALARY,FLOOR(((SALARY+BONUS*12)*12)) "보너스 포함 연봉"
FROM EMPLOYEE
WHERE ((SALARY+BONUS*12)*12) IS NOT NULL ;
결과값에는 이상이 없고, 원하는 결과가 나왔다.
하지만, 더 나아가, 결과값 뒤에 '원'이라는 리터럴 값을 포함하여 결과를 출력하고 싶다는 생각이 들었다.
<문제 코드>
<접근1>
리터럴 값을 제시하면 되지 않을까? 해서 '원'을 추가했지만, 오류 문구가 떴다.
문법 자체도 틀렸을 뿐만 아니라, 문법이 맞더라도 내가 원하는 (값 + 원)에 해당하는 코드도 아니었다.
SELECT EMP_NAME, SALARY, BONUS, SALARY,FLOOR(((SALARY+BONUS*12)*12)) '원' "보너스 포함 연봉"
FROM EMPLOYEE
WHERE ((SALARY+BONUS*12)*12) IS NOT NULL ;
<위의 경우 바른 문법>
salary 컬럼 옆에 , 를 찍고 리터럴 값을 제시해야한다. 하지만 이 역시도 내가 원하는 형태가 아니었다.
SELECT EMP_NAME, SALARY, BONUS, SALARY , '원' , FLOOR(((SALARY+BONUS*12)*12)) "보너스 포함 연봉"
FROM EMPLOYEE
WHERE ((SALARY+BONUS*12)*12) IS NOT NULL ;
<접근2>
연결 연산자를 활용해서 코드를 기술해 보았다. 드디어 원하는 결과값이 나왔다.
SELECT EMP_NAME, SALARY, BONUS, SALARY,FLOOR(((SALARY+BONUS*12)*12)) || '원' "보너스 포함 연봉"
FROM EMPLOYEE
WHERE ((SALARY+BONUS*12)*12) IS NOT NULL ;
<결론>
데이터 값에 곧바로 '원' 'kg'등 문구를 출력하기 위해서는 리터럴 값만을 제시하는 것이 아니라 || ( 연결연산자 )를 이용해서 데이터 값을 붙여줘야한다
728x90
'🚨 Error > ORACLE' 카테고리의 다른 글
[Oracle] 비등가 조인을 활용하여 문제 풀기 (0) | 2021.03.12 |
---|---|
[Oracle] 두 개이상의 테이블을 외부조인 하는 방법 (0) | 2021.03.12 |
[Oracle] 같은 문제에 DECODE 와 CASE WHEN THEN 적용해보기 (0) | 2021.03.09 |
[Oracle] 데이터 테이블에서 이메일 전체 조회가 아닌 아이디만 조회하고 싶을 때 (0) | 2021.03.07 |
[Oracle] WHERE절에서 와일드카드 기술하기 (0) | 2021.03.05 |
댓글