📌  相关文章
📜  显示员工表中最后 50% 记录的 SQL 查询

📅  最后修改于: 2022-05-13 01:55:12.248000             🧑  作者: Mango

显示员工表中最后 50% 记录的 SQL 查询

在这里,我们将看到如何显示 MySQL 和 MS SQL 服务器数据库中员工表的最后 50% 的记录。

出于演示的目的,我们将在名为“ geeks的数据库中创建一个 Employee 表。

创建数据库:

使用以下 SQL 语句创建名为 geeks 的数据库:

CREATE DATABASE geeks;

使用数据库:

USE geeks;

表定义:

我们的 geeks数据库中有以下 Employee 表:

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);

注意:我们应该使用VARCHARBIGINT作为 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;

现在让我们从 Employee 表中检索最后 50% 的记录。

对于 MS SQL 数据库:

在 MS SQL 中,我们可以借助 top、percent 和 order by 子句直接检索最后 50% 的记录。下面给出了相同的简单语法:

例子 :

SELECT * FROM
(SELECT top 50 percent * FROM Employee ORDER BY ID DESC)
ORDER BY ID;

输出 :