SQL服务器:构造问题SQL查询
SQLServer: Problem with Construction SQL Query
我在使用 VBScript 执行 SQL 查询时遇到了一些问题。
我有一个 table A,其主键 (K_ID) 在另一个 table B 中被引用为外键 (FK_ID)。
通常我想检索 B table 中最早的 K_ID 的所有信息,使用以下查询:
SELECT * FROM B WHERE FK_ID in (SELECT TOP 1 K_ID FROM A WHERE USED <> 'Y' AND ENV = 'XXX' ORDER BY K_ID)
以上工作正常。
我现在想做的是检索第二老 K_ID 的信息,我正在尝试这个查询:
SELECT * FROM B WHERE FK_ID IN (SELECT TOP 1 K_ID FROM (SELECT TOP 2 K_ID FROM A WHERE USED <> 'Y' AND ENV = 'XXX' ORDER BY K_ID ) z ORDER BY K_ID DESC)
在 SQL Server Management Studio 中,这个查询运行得很好,我得到了我需要的答案。
现在,如果我使用 VBS 和 ADODB.Connection 尝试相同的查询,我会收到以下错误消息:
ORA-00923: mot-clé FROM absent à l'emplacement prévu
我不明白为什么。我的查询有什么问题?
ORA-... 是一条 Oracle 错误信息。而 Oracle 没有 top,你只需要使用 fetch first n rows
我会说您正在为 Oracle 数据库使用 T-SQL 语言
我在使用 VBScript 执行 SQL 查询时遇到了一些问题。
我有一个 table A,其主键 (K_ID) 在另一个 table B 中被引用为外键 (FK_ID)。
通常我想检索 B table 中最早的 K_ID 的所有信息,使用以下查询:
SELECT * FROM B WHERE FK_ID in (SELECT TOP 1 K_ID FROM A WHERE USED <> 'Y' AND ENV = 'XXX' ORDER BY K_ID)
以上工作正常。
我现在想做的是检索第二老 K_ID 的信息,我正在尝试这个查询:
SELECT * FROM B WHERE FK_ID IN (SELECT TOP 1 K_ID FROM (SELECT TOP 2 K_ID FROM A WHERE USED <> 'Y' AND ENV = 'XXX' ORDER BY K_ID ) z ORDER BY K_ID DESC)
在 SQL Server Management Studio 中,这个查询运行得很好,我得到了我需要的答案。
现在,如果我使用 VBS 和 ADODB.Connection 尝试相同的查询,我会收到以下错误消息:
ORA-00923: mot-clé FROM absent à l'emplacement prévu
我不明白为什么。我的查询有什么问题?
ORA-... 是一条 Oracle 错误信息。而 Oracle 没有 top,你只需要使用 fetch first n rows
我会说您正在为 Oracle 数据库使用 T-SQL 语言