由于我无法rownum在查询中使用,我如何使用rowid从第2行到第4行的结果使用rowid或除了之外的其他可能的解决方案rownum.
这是我当前的查询,它将检索第2和第4行:
SELECT * FROM Record a
WHERE
2 = (SELECT COUNT (rowid)
FROM Record b
WHERE a.rowid >= b.rowid)
UNION
SELECT * FROM Record a
WHERE
4 = (SELECT COUNT (rowid)
FROM Record c
WHERE a.rowid >= c.rowid);
Run Code Online (Sandbox Code Playgroud)
也许还有其他更好的方法吗?TQ
任何人都可以告诉我SQL中NOT EXIST和MINUS运算符之间的差异吗?我何时可以使用?哪一个可以提供更好的性能?
我在11g安装上执行此查询没有问题:
SELECT
PRODUCT_INFOS_idm.FIELD_VALUE "mother_id",
PRODUCT_INFOS_ep.FIELD_VALUE "product_thickness",
COIL_INFOS.TIME_STAMP,
COIL_INFOS.IN_THICKNESS,
COIL_INFOS.MEASURED_LENGTH,
COIL_INFOS.MEASURED_WIDTH,
COIL_INFOS.PARAM_SET_TOP_SIDE,
COIL_INFOS.PARAM_SET_BOTTOM_SIDE
FROM
COIL_INFOS
INNER JOIN
PRODUCT_INFOS PRODUCT_INFOS_idm
on PRODUCT_INFOS_idm.COIL_ID_SYSTEM=COIL_INFOS.COIL_ID_SYSTEM
and PRODUCT_INFOS_idm.TIME_STAMP=COIL_INFOS.TIME_STAMP
and PRODUCT_INFOS_idm.FIELD_NAME='ID bobina'
INNER JOIN
PRODUCT_INFOS PRODUCT_INFOS_ep
on PRODUCT_INFOS_ep.COIL_ID_SYSTEM=COIL_INFOS.COIL_ID_SYSTEM
and PRODUCT_INFOS_ep.TIME_STAMP=COIL_INFOS.TIME_STAMP
and PRODUCT_INFOS_ep.FIELD_NAME='Anchura'
WHERE
(COIL_INFOS.COIL_ID_SYSTEM LIKE '14051800' OR COIL_INFOS.COIL_ID LIKE '14051800')
Run Code Online (Sandbox Code Playgroud)
但是当我的客户(可能安装了10g)执行它时,他就会得到它
ORA-00942: table or view does not exist
Run Code Online (Sandbox Code Playgroud)
其他查询显示他具有相同的表和列.以下查询执行没有问题:
select count(*) from COIL_INFOS
select count(*) from PRODUCT_INFOS
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?某处有语法错误吗?我怀疑Oracle版本存在问题(我已经不得不删除我通常用于列别名的"as").Oracle 10g是否支持表别名?
以下代码给了我ERROR at line 3: ORA-00907: missing right parenthesis:
CREATE TABLE ORGANISATION(
ORG_REF VARCHAR(5),
POSTCODE VARCHAR(10) FOREIGN KEY,
TELEPHONE NUMBER FOREIGN KEY,
DESCRIPTION VARCHAR(30),
AGENCY_ID VARCHAR(5));
Run Code Online (Sandbox Code Playgroud)
第3行代码非常烦人,因为查看该行没有拼写错误,一切都在正确的位置.