表是这样的
[img=http://my.csdn.net/wolililaile2/album/detail/1133399#][/img]
SELECT zal06 FROM zal_file A
WHERE zal01 = 'cxcq430' AND zal06 IS NOT NULL
AND zal03 = '2' AND zal07 = 'Y'
AND zal02 = (
SELECT MAX(B.zal02) FROM zal_file B
WHERE B.zal01 = A.zal01
AND B.zal03=A.zal03
AND B.zal06=A.zal06 AND B.zal07 = A.zal07
)
ORDER BY zal02
在子查询中 不是应该返回一个结果吗,但是我发现查出来的结果是对的,不过不太明白,高人指点一下
顺便有什么可以了解oracle的执行顺序
------最佳解决方案--------------------------------------------------------
夺分 走人~
------其他解决方案--------------------------------------------------------
表的数据图片在
http://my.csdn.net/wolililaile2/album/detail/1133399#
------其他解决方案--------------------------------------------------------
用max函数是返回一个结果啊,不知你想问啥。。。
------其他解决方案--------------------------------------------------------
SELECT zal06 FROM zal_file A
WHERE zal01 = 'cxcq430' AND zal06 IS NOT NULL
AND zal03 = '2' AND zal07 = 'Y'
AND zal02 = (
SELECT MAX(B.zal02) FROM zal_file B
WHERE B.zal01 = A.zal01
AND B.zal03=A.zal03
AND B.zal06=A.zal06 AND B.zal07 = A.zal07
)
ORDER BY zal02
看楼主的这些条件是从外面传给子查询的,所以,你所谓返回一个结果,应该只是对于符合一条的条件,
并不是整个sql只有一个结果,所以你奇怪的是什么呢?
------其他解决方案--------------------------------------------------------
楼主 还不知 max 是个聚合函数