sql – ORDER BY,列有时为空
发布时间:2020-12-12 06:45:33 所属栏目:MsSql教程 来源:网络整理
导读:我的SQL看起来像这样: SELECT CompanyName,LastName,FirstName FROM ... JOIN ...ORDER BY CompanyName,FirstName 现在问题是列A有时是空的(无论是NULL还是“”),我不希望所有这些结果最终都出现. 在这个例子中,我想让第四个条目(以C开头)成为第三个条目.但
我的SQL看起来像这样:
SELECT CompanyName,LastName,FirstName FROM ... JOIN ... ORDER BY CompanyName,FirstName 现在问题是列A有时是空的(无论是NULL还是“”),我不希望所有这些结果最终都出现. 在这个例子中,我想让第四个条目(以C开头)成为第三个条目.但如果我只是ORDER BY,会发生这种情况: Avagax Bauer Frank Bele AG Smith John Mork AG Baggins Frodo Chen Jun 此外,在某些情况下,我有时会有更多的订单列,或者更重要或更不重要.这可能是相关的. 附录:姓氏或公司必须有一个有用的字符串.名字是完全可选的.系统是PostgreSQL(8.4,可能迁移到9),也是SQLite.供应商独立性将是一个优势,因为潜在客户已经在运行Oracle和SQLServer. 解决方法您可能需要调整它以满足您的需求,但我理解它的方式,这应该是诀窍:SELECT CompanyName,FirstName FROM ... JOIN ... ORDER BY COALESCE(CompanyName,FirstName),COALESCE(LastName,FirstName 这将主要按三个非首先为空的列中的任何一个进行排序,然后是最后一个或第一个名称,最后是名字.在我看来,这种排序没有多大意义,但是YMMV. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |