📌  相关文章
📜  如何从 SQL Server 中的任何表中查找第一个值

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

如何从 SQL Server 中的任何表中查找第一个值

我们可以在 SQL Server 中使用 FIRST_VALUE() 从任何表中查找第一个值。 SQL Server 中使用的FIRST_VALUE()函数是一种窗口函数,它产生给定数据集的有序分区中的第一个值。

句法 :

SELECT *,
FROM tablename;
FIRST_VALUE ( scalar_value )  
OVER (  
  [PARTITION BY partition_value ]
  ORDER BY sort_value [ASC | DESC]
  ) AS columname ; 

语法说明:

  • 标量值 –
    scalar_value 是对提供的数据集的有序分区中第一行的值进行检查的值。
  • 分区方式 –
    PARTITION BY 是可选的,它将提供的数据集的行区分为使用 FIRST_VALUE()函数的分区。
  • 订购者 –
    ORDER BY 说明使用 FIRST_VALUE()函数的每个分区中的行顺序。

例子 :

假设我们有一个名为“geek_demo”的表:

SELECT TOP 1000 [Name]
     ,[City], [Year]
FROM [geek_demo];
NameCityYear
AnkitDelhi2019
BabitaNoida2017
ChetanNoida2018
DeepakDelhi2018
IshaDelhi2019
KhushiNoida2019
MeghaNoida2017
ParulNoida2017

示例-1:

查找没有 PARTITION BY 子句的 FIRST VALUE。

要查找表 'geek-demo' 的第一个城市,请使用以下查询:

SELECT [Name],   [Year],
        FIRST_VALUE(City) OVER (
          ORDER BY City ASC
      ) AS  First_City
FROM geek_demo;

输出 :

NameYearFirst_City
Babita2017Noida
Chetan2018Noida
Khushi2019Noida
Megha2017Noida
Parul2017Noida
Deepak2018Delhi
Isha2019Delhi
Ankit2019Delhi

示例 2 :

使用 PARTITION BY 子句查找 FIRST VALUE。

要根据表 'geek-demo' 的年份查找第一个城市,请使用以下查询:

SELECT TOP 1000 [Name] , [Year] ,
        FIRST_VALUE(City) OVER (
        PARTITION BY Year
          ORDER BY City ASC
      ) AS  First_City
FROM geek_demo;

输出 :

NameYearFirst_City
Babita2017Noida
Megha2017Noida
Parul2017Noida
Deepak2018Delhi
Chetan2018Delhi
Isha2019Delhi
Ankit2019Delhi
Khushi2019Delhi