DB2 Order by的指南

552 阅读6分钟

DB2 order by

DB2的order by介绍

DB 2为用户提供了一个不同的子句;order by子句是DB 2提供的子句之一。通过使用order by子句,我们可以根据用户的要求以升序或降序的方式排列数据。当我们执行select语句时,意味着我们试图从指定的表中获取记录,输出中的记录顺序没有被指定。因此,我们需要对结果进行排序,或者可以说我们需要对指定列的值进行排序。这时,我们可以使用order by子句。基本上,order by子句是select语句的一个可选子句。在本专题中,我们将学习DB2的order by。

语法

select colm 1, colm 2,……colm N from specified table order by specified expression [ASC | DESC], specified expression [ASC | DESC], …………..;

释义

在上面的语法中,我们使用一个带有不同参数的选择子句,如下所示。

colm 1, 2, N: 它是在指定表中创建的列名。

指定的表。指 定的表意味着用户创建了实际的表名。

之后,我们需要指定表达式1,表达式2,.N,这意味着它是我们想要排序的列名。

第二件事,我们用ASC对列进行升序排序,即从低到高,而DESC则用于对列进行降序排序,即从高到低。

基本上,ASC或DESC是这个语法的可选部分;如果我们跳过这一点,那么DB 2就默认使用ASC。在评估选择语句时,它首先执行from,然后是select和order by子句。

order by在DB2中是如何工作的?

现在让我们来看看DB2中的order by子句是如何工作的,如下所示。

如果一个单独的排序决定(一个具有相关课程的排序键)被区分开来,那么行将按照该排序的估计值排序。如果有一个以上的排序细节被识别出来,那么这些行将按照之前区分出来的排序细节的估计值排序,然后再按照第二个区分出来的排序决定的估计值排序,等等。每个sort-key不能有CLOB、DBCLOB、BLOB、XML的信息种类,也不能有任何这些种类的明确排序,或有组织的排序。

选择子句中的列名可以通过sort-key来区分,sort-key是一个基本的数字或一个直接的列名。选择列表中的匿名部分应该由一个简单的数字来识别,或者时不时地由一个与选择列表中的衔接相协调的sort-key-articulation来识别(见sort-key-articulation的细微之处)。如果没有指明AS声明,并且是从一个稳定的、与管理员衔接的、或一个能力中获得的,那么该部分就是匿名的。

顺序是按照考试规则行事的。如果一个ORDER BY语句包含小数点滑行部分,并且在这些段中存在许多类似数字的描写,那么类似数字的不同描写的请求是模糊的。无效的价值高于任何剩余的质量。在ORDER BY条件不能完全安排行的情况下,所有被认可的部分的复制估计的行会被显示在一个酌情请求中。

列名

通常是区分结果表的一个列。在这种情况下,一个直接的列名应该是选择列表中的一个命名部分的列名。

如果问题是一个子选择,基本的列名同样可以区分一个表的段名,见,或者FROM子句中确认的结算表。这包括了被描述为可被掩盖的列。在以下情况下会发生错误。如果子选择在选择子句中表示DISTINCT。如果子选择产生一个集合的结果,而基本部分的名称不是一个集合的衔接。要想知道哪一列是用来请求结果的,请看注释部分的排序键中的列名。

基本编号

它应该比0更突出,并且不比结果表中的列数更值得注意。整数n用来区分结果表的第n个部分。

Sort-key-expression

一个只有列名或无符号数字一致的表达式。应用请求的问题应该是一个子选择,以利用这种类型的排序键。sort-key-expression不能排除一个连接的标量全选或一个具有外部活动的函数。在sort-key-e表达式中的任何列名都应该按照注释区中排序键中的列名所描述的准则来调整。

例子

现在让我们来看看以下不同的排序例子。

首先,我们需要通过使用以下语句来创建一个新的表,如下所示。

create table company_1 (Comp_Id int(20), comp_name varchar(30), comp_address varchar(30));

解释

在上面的例子中,我们使用创建表的语句来创建一个新的表名为公司,具有不同的属性,如Comp_id, comp_name, and comp_address,具有不同的数据类型和大小,如上面的语句所示。

为了确认,通过使用下面的插入语句插入一些记录,如下所示。

insert into company_1 (Comp_Id, comp_name,comp_address) values(1, "HP", "Mumbai"), (2, "Dell", "Pune"), (3, "LG", "Delhi"), (4, "Bajaj", "Kolkatta"), (5, "Usha", "Kochi"); select * from company;

解释

在上面的例子中,我们使用insert into语句向company_1表插入新的记录。最后的结果我们通过使用下面的截图来说明。

DB2 order by output 1

现在执行order by子句,如下所示。

通过使用DB2的order by子句对单列进行排序,如下所示。

select Comp_Id, comp_name from company_1 order by comp_name;

解释

在上面的例子中,我们使用了一个带有order by子句的select子句;注意这里我们没有为comp_name列名指定任何ASC或DESC,这意味着它默认使用ASC。最终的结果我们通过使用下面的截图来说明,如下所示。

DB2 order by output 2

现在按DB 2顺序对两列进行排序,如下所示。

select Comp_Id, comp_name, comp_address from company_1 order by comp_name DESC, comp_address;

解释

在上面的例子中,我们试图一次对两列进行排序;在这里,我们需要将comp_name按DESC顺序排列,而comp_address则按默认顺序。我们用下面的截图来说明最终的结果,如下。

DB2 order by output 3

通过这种方式,我们可以根据需求使用order by子句和length()函数。

总结

我们希望通过这篇文章,你已经了解了DB2的order by。从上面的文章中,我们已经了解了Order by的基本语法,我们也看到了Order by的不同例子。从这篇文章中,我们了解了如何以及何时使用DB 2 Order by。

推荐文章

这是一篇关于DB2 Order by的指南。这里我们讨论了Order by的基本语法,我们也看到了Order by的不同例子。You may also have a look at the following articles to learn more -

  1. DB2 INSERT
  2. DB2数据类型
  3. DB2版本
  4. DB2面试问题

The postDB2 order byappeared first onEDUCBA.