Member 14124697 Ответов: 3

Как получить по крайней мере две записи сотрудников из таблицы


Если у меня есть таблица зарплат, как показано ниже столбцов.

Emp_Id Имя Зарплата

Как мне написать один запрос, который даст мне сомнительный результат?

Спасибо!

Что я уже пробовал:

выберите имя, Мин(топ-2 зарплаты) из зарплаты;

3 Ответов

Рейтинг:
2

Santosh kumar Pithani

CREATE TABLE #EMP(Emp_Id INT, Name VARCHAR(20),Salary MONEY)
INSERT INTO #EMP(Emp_Id,Name,Salary)
VALUES
(1215 ,'Harish',20000),
(1234,'sai',30000    ),
(1245 ,'Satish',15000),
(1246 ,'santosh',20000);

;WITH CTE AS(
    SELECT * ,DENSE_RANK()OVER(ORDER BY Salary) AS DN FROM #EMP
            )

SELECT 
   Emp_Id
  ,Name
  ,Salary 
FROM CTE WHERE DN in(1,2)

OUTPUT:-
-----------------------
Emp_Id| Name | Salary
-----------------------
1245	Satish	15000.00
1246	santosh	20000.00
1215	Harish	20000.00


Рейтинг:
0

prasanthkvr007

попробовать это
выбрать первые 2 наименование,код emp_id,зарплата от заказа зарплата оклад АСК


Member 14124697

приведенный выше синтаксис не работает на ORACLE SQL.

CHill60

Теперь вот что "дело" ... если вы хотите получить решение для Oracle, вы должны пометить свой вопрос как "Oracle"

Member 14124697

Не могли бы вы дать мне решение для oracle?

CHill60

Я опубликовал решение

Santosh kumar Pithani

Как вы решите,что мое решение не работает для oracle, вы пробовали выполнить?

Member 14124697

Решение 1 ответ не работал в Oracle.

Рейтинг:
0

CHill60

По просьбе ОП...
Oracle / PLSQL: извлечение нижних N записей из запроса[^]
Первый результат по этому вопросу Гугл[^] поиск


Member 14124697

Спасибо.....теперь это помогает мне, чтобы получить мой ответ...

Большое спасибо..

CHill60

Я замечаю, что вы удалили из этого "принять решение". Значит ли это, что он не решил вашу проблему?