所有类型数据库的唯一查询[TOP(1)]

时间:2013-08-23 08:44:26

标签: mysql sql sql-server database db2

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

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

2 个答案:

答案 0 :(得分:1)

每种语法都有不同的语法。

SQL Server / MS Access语法

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

SQL SELECT TOP在MySQL和Oracle中等效 MySQL语法

  SELECT column_name(s) FROM table_name LIMIT number;

Oracle语法

  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语法,并提供适当的配置设置。

答案 1 :(得分: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;

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