oracle 的 select 语句的问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 04:30:06
SELECT MT.mstcd,MT.ver,TMT.yukoubi,TMT.sakumei FROM
(
SELECT
mstcd,
MAX(ver) ver
FROM m_tenkaik
WHERE (MSTKBN='0' OR MSTKBN='1')
AND srcd LIKE '%%'
AND hinseicd LIKE '%%'
GROUP BY
mstcd
) MT
left join
(
SELECT
mstcd,
ver,
yukoubi,
sakumei
FROM m_tenkaik
WHERE (MSTKBN='0' OR MSTKBN='1')
AND srcd LIKE '%%'
AND hinseicd LIKE '%%'
) TMT
ON MT.mstcd = TMT.mstcd
AND MT.ver = TMT.ver

以上哪儿错了啊。。我郁闷。。
left join 不这么用,怎么用?
以上在sqlserver里是好用的
我使用 oracle 开发经验比较少。。。

Error
[row:12,col:6] ORA-00933: SQLコマンドが正しく终了されていません。
报的是left join sql文不能正常终了。
绝对不是细节的问题,我拆开运行过。

就是报的这个错误,行和列都给出来了,就是left join的地方
in和or没有什么区别,关于LIKE '%%' 这里不会有错,我没添值而已

已经找到解决办法了,不过还是谢谢你们耐心的回答
版本8和8以下不支持left join on的部分只能使用 = (+)
以下修改后运行正常

报的什么错误?你说说

我估计是MSTKBN='0' OR MSTKBN='1' 这里有问题

left join 是这么用的?

要看具体报什么错误?
这里:
MSTKBN='0' OR MSTKBN='1' 可以使用 MSTKBN in ('0', '1')
AND srcd LIKE '%%' 可以使用 srcd is not null
AND hinseicd LIKE '%%' 可以使用 hinseicd is not null
这样效率高点。

没有看到错误信息,一时无法判断问题出在哪里。
在语句结束的地方加个‘;’分号结束符试试。