SQL 使用 ORDER BY 和 TOP 根据列的值返回前 X 行
在本文中,我们将学习如何使用 ORDER BY 和 TOP 根据列的值返回前 x 行。我们将使用另一个表来获取最高值并在另一个表中使用该值。
所以首先我们创建一个数据库。
第 1 步:创建数据库
CREATE DATABASE GFG
第 2 步:使用此数据库
USE GFG
第 3 步:创建用于存储最高值的表
我们将创建一个表来存储最高值,以便我们可以使用它从另一个表中获取
CREATE TABLE TopValue(
val varchar (255)
)
在此表中插入一些最高值数据
INSERT INTO TopValue VALUES(3)
第 4 步:创建要提取的数据表
现在我们将创建一个要获取其数据并填充虚拟数据的表
CREATE TABLE geeksforgeeks(
ID INT,
Name varchar(255)
Age varchar(5),
Dept varchar(255)
)
在这个表中插入一些数据,以便我们可以获取这些数据
INSERT INTO [dbo].[geeksforgeeks]
([ID]
,[Name]
,[Age]
,[Dept])
VALUES (1, 'Devesh', 21, 'CSE')
GO
INSERT INTO [dbo].[geeksforgeeks]
([ID]
,[Name]
,[Age]
,[Dept])
VALUES (2, 'Aman', 25, 'IT')
GO
INSERT INTO [dbo].[geeksforgeeks]
([ID]
,[Name]
,[Age]
,[Dept])
VALUES (3, 'Jatin', 25, 'CSE')
GO
INSERT INTO [dbo].[geeksforgeeks]
([ID]
,[Name]
,[Age]
,[Dept])
VALUES (4, 'GFG', 23, 'CSE')
GO
INSERT INTO [dbo].[geeksforgeeks]
([ID]
,[Name]
,[Age]
,[Dept])
VALUES (5, 'Para', 22, 'CSE')
GO
第 5 步:现在根据另一个表值获取顶部数据
DECLARE @TopVal INT;
SET @TopVal = (SELECT val from TopValue)
SELECT TOP (@TopVal) * FROM geeksforgeeks ORDER BY Age DESC
输出:
我们可以看到数据是根据另一个表中的最高值成功获取的,并按年龄降序排列。