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

На основании вышеупомянутого запроса, пожалуйста, предложить уникальный запрос, работать во всех типах баз данных (SQLServer, MSSQL, DB2..etc) или предложить, пожалуйста мне запрос, который вся база данных принимает запрос Top (1).Уникальный запрос для всех типов базы данных [TOP (1)]

+5

Невозможно выполнить один запрос, который работает (неизменен) во всех СУБД. –

ответ

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 с соответствующими настройками конфигурации.

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; 

Тем не менее для этого не существует единого синтаксиса. Здесь у вас есть синтаксис для основных DB link.

+0

нет присоединяется пожалуйста – Sasuke

Смежные вопросы