* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Linux 64bit | |
CUBRID-9.2.0.0155-linux.x86_64 | |
CUBRID Manager x86[도움말]-[버전정보] 확인 | |
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
view 생성시 내부 select 절에서 sum() 과 decode() 함수를 사용하고 select 절에 포함시켰을 경우 view 는 생성이 되지만 해당
view 를 조회 할 경우 오류가 발생 합니다. decode 대신 case when 함수를 사용해도 동일한 오류가 발생을 합니다.
어떤 부분이 잘못 되었을까요?
CREATE OR REPLACE VIEW testview AS
SELECT xa.col_01 FROM (
SELECT SUM(DECODE('test','test',1,0)) AS col_01 FROM db_root ) xa;
SELECT * FROM testview;
실행 오류 : -494
Semantic: In line 1, column 46 before ' [decode('test'='test', 'test'='test', 1, 0)]) as [col_01] fro...'
Syntax error: unexpected 'as', expecting ')' select testview.col_01 from testview testview where rownum b..
감사합니다.
안녕하세요. 답변이 늦어 죄송합니다.
View에서 sum, decode 함수가 컬럼 이름이 아닌 일반적인 값('test')과 같이 사용되는 경우, 내부적으로 decode를 수행하면서 alias가 생성되어 발생한 문제입니다.
위 질의에서 decode의 첫번째 값은 보통 컬럼 이름으로 지정되어 사용되며, 이 경우에는 정상적으로 사용이 가능하니 참고 부탁 드립니다.
감사합니다.