-4
SELECT TOP(1) NAME,SECTION 
FROM STUDENT 
WHERE AGE = 10 
ORBER BY NAME DESC;

基于上述查询,请建议一个在所有类型的数据库(sqlserver、mssql、DB2..etc)中运行的唯一查询,或者请建议我一个所有数据库都接受 Top(1) 查询的查询。

4

2 回答 2

1

每个都有不同的语法。

SQL Server / MS 访问语法

  SELECT TOP number|percent column_name(s) FROM table_name;

MySQL 和 Oracle MySQL 语法中的 SQL SELECT TOP 等效项

  SELECT column_name(s) FROM table_name LIMIT number;

甲骨文语法

  SELECT column_name(s) FROM table_name WHERE ROWNUM <= number;

DB2 语法:

  SELECT column_name, .. FROM table_name FETCH FIRST n ROWS ONLY;

顺便说一下,DB2 还支持 Oracle 和 MySQL 语法,并具有适当的配置设置。

于 2013-08-23T08:49:22.240 回答
0

我不确定它是否是正确的语法,但我会尝试。

SELECT s1.NAME, s1.SECTION 
    FROM STUDENT s1 
    left join student s2
        on s1.name < s2.name
    WHERE s1.AGE = 10 
        and s2.age = 10
        and s2.name is null;

然而,没有统一的语法。这里有主要数据库链接的语法。

于 2013-08-23T09:08:40.583 回答