SQL-запрос для отображения последних 50% записей из таблицы сотрудников
Здесь мы увидим, как отобразить последние 50% записей из таблицы сотрудников в базах данных сервера MySQL и MS SQL.
Для демонстрации мы создадим таблицу сотрудников в базе данных под названием « выродки ».
Создание базы данных:
Используйте приведенный ниже оператор SQL для создания базы данных с именем geeks:
CREATE DATABASE geeks;
Использование базы данных:
USE geeks;
Определение таблицы:
У нас есть следующая таблица Employee в нашей базе данных geeks :
CREATE TABLE Employee( ID INT IDENTITY(1,1) KEY, --IDENTITY(1,1) tells start ID from 1 and increment -- it by 1 with each row inserted. NAME VARCHAR(30) NOT NULL, PHONE INT NOT NULL UNIQUE, EMAIL VARCHAR(30) NOT NULL UNIQUE, DATE_OF_JOINING DATE);
ПРИМЕЧАНИЕ. Мы должны использовать VARCHAR или BIGINT в качестве типа данных для столбца PHONE, чтобы избежать целочисленного переполнения.
Вы можете использовать следующий оператор для запроса описания созданной таблицы:
EXEC SP_COLUMNS Employee;
Добавление данных в таблицу:
Используйте приведенный ниже оператор, чтобы добавить данные в таблицу Employee :
INSERT INTO Employee (NAME, PHONE, EMAIL, DATE_OF_JOINING) VALUES ("Yogesh Vaishnav", 0000000001, "yogesh@mail.com", "2019-10-03"), ("Vishal Vishwakarma", 0000000002, "chicha@mail.com", "2019-11-07"), ("Ajit Yadav", 0000000003, "ppa@mail.com", "2019-12-12"), ("Ashish Yadav", 0000000004, "baba@mail.com", "2019-12-25"), ("Tanvi Thakur", 0000000005, "tanvi@mail.com", "2020-01-20"), ("Sam", 0000000006, "sam@mail.com", "2020-03-03"), ("Ron", 0000000007, "ron@mail.com", "2020-05-16"), ("Sara", 0000000008, "sara@mail.com", "2020-07-01"), ("Zara", 0000000009, "zara@mail.com", "2020-08-20"), ("Yoji", 0000000010, "yoji@mail.com", "2020-03-10"), ("Rekha Vaishnav", 12, "rekha@mail.com", "2021-03-25");
Чтобы проверить содержимое таблицы, используйте следующий оператор:
SELECT * FROM Employee;
Теперь давайте извлечем последние 50% записей из таблицы сотрудников.
Для базы данных MS SQL:
В MS SQL мы можем напрямую получить последние 50% записей с помощью предложений top и процента и порядка. Простой синтаксис для того же приведен ниже:
Syntax :
select * from
/*Gives the top N percent records from bottom of a database table*/
(select top N percent * from <table_name> order by <column_name> desc)<identifier>
order by <column_name>;
Пример :
SELECT * FROM (SELECT top 50 percent * FROM Employee ORDER BY ID DESC) ORDER BY ID;
Выход :