HSQL에 새롭게 추가되었습니다. 아래의 절차를 시도했다.HSQL SELECT 문이 작동하지 않습니다.
CREATE PROCEDURE GetData(ObjectId VARCHAR(36)) READS SQL DATA
DYNAMIC RESULT SETS 1
BEGIN ATOMIC
DECLARE MaxVal NUMERIC(19,2);
DECLARE MinVal NUMERIC(19,2);
DECLARE BiggestObjectName VARCHAR(50);
DECLARE SmallestObjectName VARCHAR(50);
SET MaxVal = (SELECT MAX(HeightValue) FROM ObjectData WHERE ObjectId=ObjectId);
SET MinVal = (SELECT MIN(HeightValue) FROM ObjectData WHERE ObjectId=ObjectId);
SET BiggestObjectName = (SELECT ObjectName FROM ObjectData WHERE ObjectId=ObjectId AND HeightValue=MaxVal);
SET SmallestObjectName = (SELECT ObjectName FROM ObjectData WHERE ObjectId=ObjectId AND HeightValue=MinVal);
if MaxVal IS NOT NULL THEN
DECLARE result CURSOR WITH RETURN FOR
SELECT MaxVal AS MaximumHeight, MinVal AS MinimumHeight, BiggestObjectName AS LargestDisplayCaseName, SmallestObjectName AS SmallestDisplayCaseName FOR READ ONLY;
OPEN result;
END
하지만 오류가 발생합니다.
Caused by: java.sql.SQLSyntaxErrorException: unexpected token: ; required: INTO
올바른 구문이 아닙니까?
어떤 도움에 감사드립니다 :)
가장 큰 객체와 가장 작은 객체에 대해 'MAX'값이있는 'MIN'값을 계산해야하는 경우 어떻게해야합니까? 단일 쿼리에서이 작업을 수행 할 수 있습니까? 질문 내가 수정 한 내용을 더 잘 설명하도록 수정했습니다. – Raj
@Rajkishan : 스토어드 프로 시저 구문에 대한 질문이 다른 것으로 바뀌 었습니다. 이제는 [태그 : 그룹당 최대 n 개]를 효율적으로 찾을 수 있습니다. 하루에 여러 번 요청됩니다. http://stackoverflow.com/questions/tagged/greatest-n-per-group+sql –