【发布时间】:2017-06-15 19:07:09
【问题描述】:
问题陈述:
Column1 | Column2 | Column3 | Column4 | Column5
------------------------------------------------------------------------
1 |22 |Y |Null |Null
2 |21 |Null |Y |Null
31 |12 |N |Y |Null
12 |24 |Null |Null |Y
12 |52 |Y |Null |N
14 |26 |N |N |Y
51 |72 |Y |Null |Null
65 |32 |N |N |Null
67 |76 |N |Null |Null
23 |23 |N |N |Null
43 |22 |N |Null |Null
Column2 只是一个数据字段。不依赖于此。但我需要分别按 Column3、Column4、Column5 和 Column1 对整个数据集进行排序。 例如,按 (Column3, Column4,Column5,Column1) DESC 或 ASC 排序。 Column3 中的所有‘Y’都应该在前,然后是 column4 的‘Y’,然后是 column5 的‘Y’,其余记录可以按 Column1 值排序。
预期结果:
Column1 | Column2 | Column3 | Column4 | Column5
------------------------------------------------------------------------
1 |22 |Y |Null |Null
12 |52 |Y |Null |N
51 |72 |Y |Null |Null
2 |21 |Null |Y |Null
31 |12 |N |Y |Null
12 |24 |Null |Null |Y
14 |26 |N |N |Y
23 |23 |N |N |Null
43 |22 |N |Null |Null
65 |32 |N |N |Null
67 |76 |N |Null |Null
不想使用任何联合类型的东西。任何想法,如何在 oracle 中做到这一点?
提前感谢您的宝贵时间。
【问题讨论】:
-
您好,欢迎来到论坛。您也应该提供您的尝试让我们查看,并解释它出了什么问题。这个网站不是供我们编写您的程序或查询的,但如果您的尝试由于某种原因不起作用,通常我们可以提供帮助。
-
嗨@Hannu,我通过一种繁琐的方法(通过联合)达到了预期的结果。不知道如何以有效的方式做到这一点。即使我尝试了托尼提到的类似方法,但当时遇到了不同的问题。由于我不确定这些方法,我正在寻找其他想法。下次我也会发布尝试。谢谢。
标签: oracle