具有空值的多个列的SQL查询顺序

时间:2014-07-25 09:10:31

标签: sql null sql-order-by multiple-columns

我有一个这样的表(注意:真正的表有更多的列):

street|zip
-----------
'b'   |0
'a'   |0
'c'   |null
'f'   |1
null  |0
null  |null

我想做这样的查询:

SELECT * FROM locations ORDER BY street, zip

此查询的结果如下:

street|zip
-----------
'a'   |0
'b'   |0
'c'   |null
'f'   |1
null  |0
null  |null

现在问题是查询必须如何生成此输出(甚至可能?):

street|zip
-----------
'a'   |0
'b'   |0
'c'   |null
null  |0
'f'   |1
null  |null

如果列的值为null,则应忽略/解释为wildecard。 我正在使用PostgreSQL 9.2。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

不,看起来不太可能。您无法为此构建可重现的规则。

如果您将null视为外卡,那么您的第一个示例也会有效。

street|zip
-----------
'a'   |0
'b'   |0
'c'   |null
null  |0
null  |null
'f'   |1

也是。