SELECT TOP(1) NAME,SECTION
FROM STUDENT
WHERE AGE = 10
ORBER BY NAME DESC;
基于上面的查询,请建议一个在所有类型的数据库(sqlserver,mssql,DB2..etc)中运行的唯一查询,或者请建议我查询所有数据库接受Top(1)查询。
答案 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的语法。