database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31346 게시물 읽기
No. 31346
mysql function에서 union all 사용 안되나요?
작성자
이기자(k3i2)
작성일
2021-09-03 14:53ⓒ
2021-09-03 17:19ⓜ
조회수
2,802

mysql에서 함수를 만드는데,

그냥 하나의 테이블에서 조회하면 생성이 되는데

두개의 테이블을 union all로 조회하게하니 오류가 나고 생성이 안됩니다.

함수에서 union all은 사용이 안되나요?


BEGIN

    DECLARE RTN_VAL INT;

     SELECT max(d.cnt)

     INTO RTN_VAL

     FROM(

        SELECT a.cnt

        FROM teble1 a

        WHERE a.id = call_id

          AND a.member = call_onumber

    )d;

    RETURN RTN_VAL;

END

이렇게하면 문제없이 생성이 되는데,


BEGIN

    DECLARE RTN_VAL INT;

     SELECT max(d.cnt)

     INTO RTN_VAL

     FROM(

        SELECT a.cnt

        FROM teble1 a

        WHERE a.id = call_id

          AND a.member = call_onumber

        UNION ALL

        SELECT a.cnt

        FROM teble2 a

        WHERE a.id = call_id

          AND a.member = call_onumber

    )d;

    RETURN RTN_VAL;

END


이렇게 union all을 붙이면, SQL 오류 (1221): Incorrect usage of UNION and INTO 이런 오류가 납니다.

 

이 글에 대한 댓글이 총 3건 있습니다.

d.cnt => RTN_VAL에 넣으려고 하는데요

아래에는 scalar 변수에 넣으려고 해서 나는 에러예요 

(다수개를 하나에 넣으려고 하니..) 

.님이 2021-09-03 16:36에 작성한 댓글입니다. Edit

답변 감사합니다.

제가 잘못옮겼네요. 수정하겠습니다.

select max(d.cnt) 로 감싸면 결과값은 하나가 되는데,

마찬가지입니다.

위예시에 감싸면되는데 아래는 같은 에러납니다

이기자(k3i2)님이 2021-09-03 17:04에 작성한 댓글입니다.
이 댓글은 2021-09-03 17:18에 마지막으로 수정되었습니다.

버그인 듯 하네요.

https://bugs.mysql.com/bug.php?id=32858

마농(manon94)님이 2021-09-08 08:36에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31349insert 프로시저 진행 후 select 프로시저 진행 시 select 오류
이승태
2021-10-15
3282
31348쿼리 질문 - 특정 기간에 날짜별 접속기기별 방문수 [2]
조현철
2021-09-26
3625
31347쿼리하나 부탁 드립니다. [7]
이기자
2021-09-04
3026
31346mysql function에서 union all 사용 안되나요? [3]
이기자
2021-09-03
2802
31344Function 소스 보기를 금지하는 방법 [2]
이규영
2021-08-12
3129
31343온라인 MySQL 테스트환경
류신
2021-07-19
3667
31342Truncated incorrect DOUBLE value [1]
최진안
2021-07-18
3428
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다