Order by는 SQL의 절입니다. 쿼리 결과 집합을 오름차순 또는 내림차순으로 정렬하는 데 사용됩니다. 하나 이상의 열을 사용하여 정렬할 수 있습니다. 이 기사에서는 MS SQL Server의 Order by 절에 대해 설명합니다.
MS SQL Server에서 Order by 절을 사용하는 구문은 다음과 같습니다. -
으아아아SELECT 컬럼1, 컬럼2, ...: 테이블에서 검색하려는 열을 지정합니다.
FROM table_name: 데이터를 검색하려는 테이블의 이름을 지정합니다.
ORDER BY 컬럼1 [ASC|DESC], 컬럼2 [ASC|DESC], ...: 지정된 열에 따라 결과 집합을 오름차순 또는 내림차순으로 정렬합니다.
기본적으로 Order by 절은 결과 집합을 오름차순으로 정렬합니다. 결과 집합을 오름차순으로 정렬하려면 ASC 키워드를 명시적으로 지정할 필요가 없습니다.
이 예에서는 결과 집합이 customer_name 열을 기준으로 오름차순으로 정렬됩니다.
다음 열과 데이터를 포함하는 "Employees"라는 테이블이 있다고 가정합니다.
사원ID |
직원 이름 |
부서 |
급여 |
---|---|---|---|
1 |
존 |
IT |
50000 |
2 |
제인 |
판매 |
45000 |
3 |
밥 |
IT |
55000 |
4 |
앨리스 |
인사 |
40000 |
5 |
톰 |
인적 자원 |
42000 |
Employees 테이블에서 모든 데이터를 검색하고 Salary 열을 기준으로 오름차순으로 정렬하려는 경우 SQL 쿼리는 -
입니다. 으아아아위 쿼리의 출력은 -
입니다.사원ID |
직원 이름 |
부서 |
급여 |
---|---|---|---|
4 |
앨리스 |
인사 |
40000 |
5 |
톰 |
인사 |
42000 |
2 |
제인 |
판매 |
45000 |
1 |
존 |
IT |
50000 |
3 |
밥 |
IT |
55000 |
결과 세트를 내림차순으로 정렬하려면 열 이름 뒤에 DESC 키워드를 지정해야 합니다.
이 예에서는 결과 집합이 customer_name 열을 기준으로 내림차순으로 정렬됩니다.
직원 테이블에서 모든 데이터를 검색하고 부서 열을 기준으로 내림차순으로 정렬하려는 경우 SQL 쿼리는 -
입니다. 으아아아위 쿼리의 결과는
사원ID |
직원 이름 |
부서 |
급여 |
---|---|---|---|
2 |
제인 |
판매 |
45000 |
1 |
존 |
IT |
50000 |
3 |
밥 |
IT |
55000 |
5 |
톰 |
인적 자원 |
42000 |
4 |
앨리스 |
인사 |
40000 |
我们还可以按多列对结果集进行排序。在本例中,Order by 子句首先根据第一列对结果集进行排序,然后根据第二列对结果集进行排序。
SELECT * FROM customers ORDER BY country, customer_name;
在此示例中,结果集将根据国家/地区列按升序排序。如果两行或多行具有相同的国家/地区,则这些行将根据 customer_name 列按升序排序。
如果我们想从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 子句首先根据第一列对结果集进行排序,然后根据第二列对结果集进行排序。
SELECT * FROM customers ORDER BY country, customer_name;
在此示例中,结果集将根据国家/地区列按升序排序。如果两行或多行具有相同的国家/地区,则这些行将根据 customer_name 列按升序排序。
如果我们想要从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 中的查询结果集进行排序。
当我们使用 Order by 子句时,NULL 值的排序方式有所不同,具体取决于我们是按升序还是降序排序。按升序排列,首先显示 NULL 值,按降序排列,最后显示 NULL 值。
例如
SELECT * FROM customers ORDER BY city DESC;
在此示例中,结果集将根据城市列按降序排序。 NULL 值将显示在最后。
MS SQL Server 中的 Order by 子句是一个功能强大的工具,它允许我们根据一个或多个列以升序或降序对查询结果集进行排序。通过了解 Order by 子句的语法和用法,我们可以创建更复杂且更有意义的查询来从数据库中检索数据。
위 내용은 MS SQL Server에서 정렬 기준의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!