今天遇到一個語句取不到最大值,我的本意是取出part_no中間四位的最大值的那條記錄,語句如下:
SELECT to_char(max(substr(PART_NO,4,4)),'0000')
INTO TPART
FROM DAT_PART
WHERE substr(PART_NO,1,1)=VTYPE_NO
AND substr(PART_NO,2,2)=VCATA_NO
AND ROWNUM=1;
結果老是取不到最大值,原因其實就是多了後面的那條AND ROWNUM=1,因為你要查詢的并不是一條記錄,如果你有後面的那條AND ROWNUM=1,搜索時就只會查第一條;
SELECT to_char(max(substr(PART_NO,4,4)),'0000')
INTO TPART
FROM DAT_PART
WHERE substr(PART_NO,1,1)=VTYPE_NO
AND substr(PART_NO,2,2)=VCATA_NO
AND ROWNUM=1;
結果老是取不到最大值,原因其實就是多了後面的那條AND ROWNUM=1,因為你要查詢的并不是一條記錄,如果你有後面的那條AND ROWNUM=1,搜索時就只會查第一條;