我通过开放访问命令验证了firebird。对于验证, 我对相同的数据和模式使用相同的命令来进行firebird和开放访问(SQL)。当我在SQL上运行这个查询时,它正在工作。在组查询的情况下,它不显示所需的输出。火鸟如何评估相关查询?现有数据没有记录
SELECT EMPNO,SAL
FROM EMP E
WHERE 1 = (SELECT MAX(DEPTNO)
FROM DEPT D
WHERE E.ENAME like '%AME%')
OR EMPNO = (SELECT MAX(DEPTNO)
FROM DEPT D
WHERE E.ENAME like (SELECT TOP 1 ENAME
FROM emp E1
WHERE E1.EMPNO=D.DEPTNO))
ORDER BY EMPNO;
这里是开放存取(SQL)的输出,
EMPNO SAL
-15 3000
-12 2000
-11 100500.55
-10 NULL
-9 1111.11
-8 -3000
-6 NULL
.........
.........
Rows selected = 27
火鸟,
EMPNO SAL
Rows selected = 0
即使火鸟,Openacess(SQL)使用相同的结构化语言,但在输出不同。
DDL查询,
CREATE TABLE EMP(EMPNO integer , ENAME varchar(32) , JOB varchar(32) , HIREDATE datetime , SAL float ,COMM real ,DEPTNO integer);
CREATE TABLE DEPT(DEPTNO integer, DNAME varchar(40), LOC varchar(40), DIVNO integer);
数据上面DDL,
INSERT INTO EMP VALUES(101, 'NAME1', 'TITLE1', '1990-02-02 02:02:02', 100500.55, 2000.90, 1);
INSERT INTO EMP VALUES (102,'NAME2','TITLE2', '1958-02-02 02:02:02',2000.00, 20000.00, 1);
INSERT INTO EMP VALUES(103, 'NAME3', 'TITLE3', '1997-03-12 08:09:54', 3000.00, 1000.50, 2);
INSERT INTO EMP VALUES(104, 'NAME4', 'TITLE4', '1997-04-02 00:00:00', 1111.11, 2.22, 1);
INSERT INTO EMP VALUES(105, 'NAME5', 'TITLE5', '1997-06-12 08:09:54', 3000.00, 1000.50, 2);
INSERT INTO EMP VALUES(106, 'NAME6', 'TITLE6', '1997-06-12 02:02:02', 1111.11, 2.22, 1);
INSERT INTO DEPT (DEPTNO, DNAME, LOC, DIVNO) Values (1, 'Software', 'San Jose', 10);
INSERT INTO DEPT (DEPTNO, DNAME, LOC, DIVNO) Values (2, 'Sales', 'LA', 20);
INSERT INTO DEPT (DEPTNO, DNAME, LOC, DIVNO) Values (3, 'Marketing', 'LA', 20);
请格式化查询,使其可读(该查询对我来说没有意义)。同时发布一个可重现的例子:包括DDL和一个数据样本。你是否检查过一个简单的'select * from emp'返回任何数据,并且这些子查询产生了预期的结果,这样做外层查询将产生任何东西。 –
请提供所涉及的表的DDL和一个数据样本,并描述这个查询应该做什么,因为它对我来说毫无意义(除了它会给出一个'标记未知'的错误火鸟)。 –
@MarkRotteveel它有超过15行插入。我如何向你展示? – kvk30