SQL:如何对两列上的行进行排序,但在这些列上使用条件

时间:2011-09-13 15:58:35

标签: sql sorting

我有一个有两列的表。我们将表格Table1和列Col1和Col2称为文本列。

某些行将在Col1中包含数据,而Col2将为null。然后有一些行,其中Col1将为null,而Col2将具有数据。最后,一些行将在两者中都有数据。两列都不为空,不存在任何行。

我想读取所有行,但排序需要如下:如果Col1有数据,则使用该列,无论Col2中是什么。如果Col1为null,则使用Col2。

我甚至不确定是否可以通过排序生成这个。谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

有几种方法可以做到这一点。这是一个:

order by coalesce(col1, col2)

答案 1 :(得分:2)

....
order by
case when Col1 is not null then Col1
when Col1 is null then Col2
end