데이터 계산식..질문입니다. 0 3 439

by 강쥐용 [Oracle 기초] [2021.06.08 16:24:27]


Ling 이라는 테이블에

EA라는 컬럼이있습니다.

컬럼안에 데이터는

3*18*1

4*18*1

5*18*1 입니다.

이것을 변환해서 가공한 NEW_EA 컬럼에

54

72

90

이 나와야하는데 방법이 있을까요?

문자열 * 기준으로 다 자르고 하나하나 곱해야하는것인지..다른방법이 없을까합니다.

by 샤랄라 [2021.06.08 16:55:19]
with test as
( select '3*18*1' ea from dual union all
  select '4*18*1' ea from dual union all
  select '5*18*1' ea from dual
)
select ea
     , to_number(dbms_xmlgen.getxmltype ('select ' || ea || ' a from dual').extract('//text()')) new_ea
from test a
;

 


by 마농 [2021.06.08 17:09:54]

숫자와 곱하기(*) 뿐인가요?
다른 복잡한 유형이 없다면?
곱하기 부호로 쪼개어 연산하기도 가능합니다.
곱하기 대상이 항상 3개 뿐이라면?
더 간단할 수도 있습니다.
다양한 유형이 있는지 한가지 유형만 존재하는지에 따라 다릅니다.


by 강쥐용 [2021.06.09 08:15:21]

랭스와 서브스트링으로 해결하였습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입