我有一个像这样的表格(注意:真实的表格有更多的列):
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
如果列的值为空,则应将其忽略/解释为通配符。 我使用的是 PostgreSQL 9.2。
感谢您的帮助。
最佳答案
不,这看起来不可能。您无法为此构建可重现的规则。
如果您将 null 视为通配符,您的第一个示例也将有效。
street|zip
-----------
'a' |0
'b' |0
'c' |null
null |0
null |null
'f' |1
也会的。
关于SQL 查询按具有空值的多个列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24952057/