Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Cx_Oracle-如何指定具有双顺序输出的查询_Sql_Oracle_Sql Order By - Fatal编程技术网

Sql Cx_Oracle-如何指定具有双顺序输出的查询

Sql Cx_Oracle-如何指定具有双顺序输出的查询,sql,oracle,sql-order-by,Sql,Oracle,Sql Order By,我正在处理一个Cx_Oracle 11g数据库:我想知道是否有可能在一个表的输出中有两种不同类型的order by。我的意思是,假设列是name,timestamp和value,我需要输出如下所示: nameA - timestamp1 - value nameA - timestamp2 - value nameA - timestamp3 - value nameB - timestamp1 - value nameB - timestamp2 - value nameB - timesta

我正在处理一个Cx_Oracle 11g数据库:我想知道是否有可能在一个表的输出中有两种不同类型的
order by
。我的意思是,假设列是
name
timestamp
value
,我需要输出如下所示:

nameA - timestamp1 - value
nameA - timestamp2 - value
nameA - timestamp3 - value
nameB - timestamp1 - value
nameB - timestamp2 - value
nameB - timestamp3 - value
其中,主要顺序是按
名称
,而
时间戳
是按每个不同的
名称
排序的。我该怎么办

可以在order_by_子句中指定多个表达式。Oracle数据库首先根据第一个表达式的值对行进行排序。然后,第一个表达式具有相同值的行将根据第二个表达式的值进行排序,依此类推

因此,在您的情况下,只需执行以下操作:

order by name, timestamp
在您的查询中,将执行您描述的操作。

可以在order_by_子句中指定多个表达式。Oracle数据库首先根据第一个表达式的值对行进行排序。然后,第一个表达式具有相同值的行将根据第二个表达式的值进行排序,依此类推

因此,在您的情况下,只需执行以下操作:

order by name, timestamp

在您的查询中将执行您描述的操作。

按名称排序、按时间戳排序在Cx\U Oracle中不起作用吗?你犯了什么错误?@AlexPoole是的,它起作用了。我不知道,谢谢。列名在子句中出现的顺序是否决定了查询的工作方式?它将按
名称
排序,然后按
时间戳
排序,这就是您想要的。列在列表中出现的顺序确实很重要,是的。
orderbyname,timestamp
在Cx\U Oracle中不起作用吗?你犯了什么错误?@AlexPoole是的,它起作用了。我不知道,谢谢。列名在子句中出现的顺序是否决定了查询的工作方式?它将按
名称
排序,然后按
时间戳
排序,这就是您想要的。列在列表中的显示顺序确实很重要,是的。