我有一个sql查询(使用Firebird作为RDBMS),其中需要按字段排序结果。但是,我需要按照该领域的内容进行排序。即“NE”先走,“OE”走第二,“OP”走第三,空白走最后。不幸的是,我不知道如何实现这一点。我所做过的所有事情都是[字段] ASC/DESC,而没有别的。按特定字段值排序SQL查询
有什么建议吗?
编辑:我真的应该澄清:我只是希望在这里了解更多。我现在拥有它,我只是有多个选择语句来定义首先显示哪个语句。查询是相当大的,我真的很希望能有可能学习这样做的更多effecient方式: 例如:
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='NE'
UNION
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='OE'
UNION
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='OP'
UNION (etc...)
Ñ建议的解决方案之一需要多个选择/联合。他们都应该更快,更容易维护,查询将更容易阅读。 – 2008-12-29 20:15:27
我和Peter LaComb一起参加这个节目。你为什么使用UNION?没有必要 我会用SELECT * FROM Retail WHERE MTITLE LIKE'somethi%'和版本在('NE','OE','OP','')ORDER BY CASE EDITION当'NE'Then 1当'OE'然后2当'OP'然后3其他4结束 – Pulsehead 2008-12-30 16:01:02
@Pulsehead你可以找到答案,为什么我会在这个非常了解StackOverflow问题的地方使用联合关于不知道排序字段的最佳方式。 – Cyprus106 2015-12-09 18:57:35