DB2是否支持使用ORDER BY子句的SELECT-INTO语句? [英] does DB2 support SELECT - INTO statement with ORDER BY clause?
问题描述
这是我的查询,它嵌入在COBOL程序中。
EXEC SQL
SELECT DATE,年龄,持续时间,AMT
INTO:LDATE,:L.AGE,:L.DURATION,:L.AMT
来自TAB1
WHERE CODE =:KEY.CODE
AND SET =:KEY.SET
AND DATE< =:KEY.DATE
AND AGE> =:KEY.AGE
AND DURATION> =:KEY.DURATION
订购日期DESC,AGE ASC,DURATION ASC
FOR READ只需
FETCH第一个1行只需
优化1行
END-EXEC
我编译它,模块错误输出,原因如下:FOR
FETCH ONLY不支持。这个,尽管我不使用FOR FETCH。
我现在怀疑DB2是否支持使用ORDER BY的SELECT-INTO。
是或不是?
Hi,
This is my query which is embedded in a COBOL program.
EXEC SQL
SELECT DATE, AGE, DURATION, AMT
INTO :LDATE, :L.AGE, :L.DURATION, :L.AMT
FROM TAB1
WHERE CODE = :KEY.CODE
AND SET = :KEY.SET
AND DATE <= :KEY.DATE
AND AGE >= :KEY.AGE
AND DURATION >= :KEY.DURATION
ORDER BY DATE DESC, AGE ASC, DURATION ASC
FOR READ ONLY
FETCH FIRST 1 ROW ONLY
OPTIMIZE FOR 1 ROW
END-EXEC
When I compile it, the module errors out, giving the reason as :FOR
FETCH ONLY not supported. This, inspite of me not using FOR FETCH ONLY.
I now doubt whether DB2 supports SELECT-INTO with ORDER BY.
Does it or does it not?
推荐答案
仅将FETCH FIRST 1行放入在FOR READ ONLY之前和OPTIMIZE FOR 1
ROW。
" FETCH FIRST 1 ROW ONLY"是Subselect的一部分。
FOR READ ONLY和优化1行是select-sttement的一部分。
Put "FETCH FIRST 1 ROW ONLY" before "FOR READ ONLY" and "OPTIMIZE FOR 1
ROW".
"FETCH FIRST 1 ROW ONLY" is part of Subselect.
"FOR READ ONLY" and "OPTIMIZE FOR 1 ROW" are part of Select-sttement.
即使这不起作用。
Even this does not work.
您使用的是什么DB2版本和平台?
What DB2 version and platform are you using?
这篇关于DB2是否支持使用ORDER BY子句的SELECT-INTO语句?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!