Aquí, vamos a ver cómo mostrar el último 50% de los registros de una tabla de empleados en las bases de datos del servidor MySQL y MS SQL.
Con fines de demostración, crearemos una tabla de empleados en una base de datos llamada » geeks «.
Creación de una base de datos:
Use la siguiente instrucción SQL para crear una base de datos llamada geeks:
CREATE DATABASE geeks;
Usando la base de datos:
USE geeks;
Definición de tabla:
Tenemos la siguiente tabla de empleados en nuestra base de datos 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);
NOTA: Deberíamos usar VARCHAR o BIGINT como el tipo de datos para la columna TELÉFONO para evitar el desbordamiento de enteros.
Puede usar la siguiente declaración para consultar la descripción de la tabla creada:
EXEC SP_COLUMNS Employee;
Agregar datos a la tabla:
Use la siguiente declaración para agregar datos a la tabla de empleados :
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');
Para verificar el contenido de la tabla, use la siguiente declaración:
SELECT * FROM Employee;
Ahora recuperemos el último 50% de los registros de la tabla de empleados.
Para la base de datos MS SQL:
En MS SQL podemos recuperar directamente el último 50% de los registros con la ayuda de las cláusulas top y percent y order by. Una sintaxis simple para el mismo se da a continuación:
Sintaxis:
Seleccionar de
/*Proporciona los primeros N registros porcentuales desde la parte inferior de una tabla de base de datos*/
(seleccione el N por ciento superior * de <table_name> ordenar por <column_name> desc)<identifier>
ordenar por <nombre_columna>;
Ejemplo :
SELECT * FROM (SELECT top 50 percent * FROM Employee ORDER BY ID DESC) ORDER BY ID;
Producción :