ホームページ  >  記事  >  データベース  >  MS SQL Serverでの並べ替え

MS SQL Serverでの並べ替え

WBOY
WBOY転載
2023-09-17 16:53:041049ブラウズ

MS SQL Server 中的排序依据

Order by は SQL の句です。これは、クエリの結果セットを昇順または降順で並べ替えるために使用されます。 1 つ以上の列を使用して並べ替えることができます。この記事では、MS SQL Server の Order by 句について説明します。

###文法###

MS SQL Server で Order by 句を使用するための構文は次のとおりです -

リーリー

用語の説明

    SELECT 列 1、列 2、...: テーブルから取得する列を指定します。
  • FROM table_name: データを取得するテーブルの名前を指定します。
  • ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...: 指定された列に従って、結果セットを昇順または降順に並べ替えます。
  • 昇順ソート

デフォルトでは、Order by 句は結果セットを昇順に並べ替えます。結果セットを昇順で並べ替えるには、ASC キーワードを明示的に指定する必要はありません。

例 1

リーリー

この例では、結果セットは customer_name 列に基づいて昇順で並べ替えられます。

例 2

次の列とデータを含む「Employees」という名前のテーブルがあるとします -

######従業員ID###### 従業員の名前 ######それ###### ######単純###### ######セール###### 3550004アリス400005トム42000上記のクエリの出力は - です。 従業員の名前 ######人事###### 40000 ######人事######

######部門###### ######給料######

1

ジョン

50000

2

45000

######ボブ###### ######それ######

######人事######

######人事######

Employees テーブルからすべてのデータを取得し、Salary 列で昇順に並べ替える場合、SQL クエリは -

になります。 リーリー

######従業員ID######

######部門###### ######給料######

4

アリス

5

トム

42000

2

######単純###### ######セール######

450001ジョン50000355000結果セットを降順に並べ替えるには、列名の後に DESC キーワードを指定する必要があります。 この例では、結果セットは customer_name 列に基づいて降順で並べ替えられます。 例 2上記のクエリの出力は次のとおりです。 ######単純###### ######セール###### トム40000

######それ######

######ボブ###### ######それ######

降順に並べ替えます

例 1

リーリー

従業員テーブルからすべてのデータを取得し、部門列で降順に並べ替える場合、SQL クエリは -

になります。 リーリー

######従業員ID######
従業員の名前

######部門###### ######給料######

2
45000

1

ジョン
######それ######

50000

3
######ボブ###### ######それ######

55000

5

######人事######

42000

4

アリス

######人事######

按多列排序

我们还可以按多列对结果集进行排序。在本例中,Order by 子句首先根据第一列对结果集进行排序,然后根据第二列对结果集进行排序。

示例 1

SELECT * FROM customers
ORDER BY country, customer_name;

在此示例中,结果集将根据国家/地区列按升序排序。如果两行或多行具有相同的国家/地区,则这些行将根据 customer_name 列按升序排序。

示例 2

如果我们想从Employees表中检索所有数据,并首先按Department列升序排序,然后按Salary列升序排序,SQL查询将是 -

SELECT * FROM Employees
ORDER BY Department DESC;

上述查询的输出为

员工ID

员工姓名

部门

薪资

2

销售

45000

1

约翰

IT

50000

3

鲍勃

IT

55000

5

汤姆

人力资源

42000

4

爱丽丝

人力资源

40000

按多列排序

我们还可以按多列对结果集进行排序。在本例中,Order by 子句首先根据第一列对结果集进行排序,然后根据第二列对结果集进行排序。

示例 1

SELECT * FROM customers
ORDER BY country, customer_name;

在此示例中,结果集将根据国家/地区列按升序排序。如果两行或多行具有相同的国家/地区,则这些行将根据 customer_name 列按升序排序。

示例 2

如果我们想要从Employees表中检索所有数据,并首先按Department列升序排序,然后按Salary列升序排序,那么SQL查询将是

SELECT * FROM Employees
ORDER BY Department ASC, Salary ASC;

上述查询的输出为

员工ID

员工姓名

部门

薪资

4

爱丽丝

人力资源

40000

5

汤姆

人力资源

42000

1

约翰

IT

50000

3

鲍勃

IT

55000

2

销售

45000

这些示例演示了如何使用 Order by 子句对 MS SQL Server 中的查询结果集进行排序。

使用 NULL 值排序

当我们使用 Order by 子句时,NULL 值的排序方式有所不同,具体取决于我们是按升序还是降序排序。按升序排列,首先显示 NULL 值,按降序排列,最后显示 NULL 值。

例如

SELECT * FROM customers
ORDER BY city DESC;

在此示例中,结果集将根据城市列按降序排序。 NULL 值将显示在最后。

结论

MS SQL Server 中的 Order by 子句是一个功能强大的工具,它允许我们根据一个或多个列以升序或降序对查询结果集进行排序。通过了解 Order by 子句的语法和用法,我们可以创建更复杂且更有意义的查询来从数据库中检索数据。

以上がMS SQL Serverでの並べ替えの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。