Maison  >  Article  >  base de données  >  Trier par dans MS SQL Server

Trier par dans MS SQL Server

WBOY
WBOYavant
2023-09-17 16:53:04996parcourir

MS SQL Server 中的排序依据

Order by est une clause en SQL. Il est utilisé pour trier l'ensemble de résultats d'une requête par ordre croissant ou décroissant. Il peut être trié sur une ou plusieurs colonnes. Dans cet article, nous discuterons de la clause Order by dans MS SQL Server.

Grammaire

La syntaxe d'utilisation de la clause Order by dans MS SQL Server est la suivante -

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

Explication de la grammaire

  • SELECT column1, column2, ... : Spécifiez les colonnes que nous voulons récupérer de la table.

  • FROM table_name : Spécifiez le nom de la table à partir de laquelle nous souhaitons récupérer les données.

  • ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ... : Trie l'ensemble de résultats par ordre croissant ou décroissant en fonction de la colonne spécifiée.

Tri ascendant

Par défaut, la clause Order by trie le résultat défini par ordre croissant. Pour trier l'ensemble de résultats par ordre croissant, nous n'avons pas besoin de spécifier explicitement le mot-clé ASC.

Exemple 1

SELECT * FROM customers
ORDER BY customer_name;

Dans cet exemple, l'ensemble de résultats sera trié par ordre croissant en fonction de la colonne customer_name.

Exemple 2

Supposons que nous ayons un tableau nommé "Employés" qui contient les colonnes et données suivantes -

ID d'employé

Nom de l'employé

Département

Salaire

1

Jean

IT

50000

2

Jane

VENTE

45000

3

Bob

IT

55000

4

Alice

Ressources humaines

40000

5

Tom

Ressources humaines

42000

Si nous voulons récupérer toutes les données de la table Employés et les trier par colonne Salaire par ordre croissant, la requête SQL sera -

SELECT * FROM Employees
ORDER BY Salary;

Le résultat de la requête ci-dessus est -

ID d'employé

Nom de l'employé

Département

Salaire

4

Alice

Ressources humaines

40000

5

Tom

Ressources humaines

42000

2

Jane

VENTE

45000

1

Jean

IT

50000

3

Bob

IT

55000

Trier par ordre décroissant

Pour trier l'ensemble de résultats par ordre décroissant, nous devons spécifier le mot-clé DESC après le nom de la colonne.

Exemple 1

SELECT * FROM customers
ORDER BY customer_name DESC;

Dans cet exemple, l'ensemble de résultats sera trié par ordre décroissant en fonction de la colonne customer_name.

Exemple 2

Si nous voulons récupérer toutes les données de la table des employés et les trier par colonne de service par ordre décroissant, la requête SQL sera -

SELECT * FROM Employees
ORDER BY Department DESC;

Le résultat de la requête ci-dessus est

ID d'employé

Nom de l'employé

Département

Salaire

2

Jane

VENTE

45000

1

Jean

IT

50000

3

Bob

IT

55000

5

Tom

Ressources humaines

42000

4

Alice

Ressources humaines

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 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 子句的语法和用法,我们可以创建更复杂且更有意义的查询来从数据库中检索数据。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer