我的问题与这个问题相反,是否可以定义排序顺序。
我想从 SQL Server 数据库中返回一些记录,根据列的值按升序排序,但是两个特定的记录应该总是在最后。
原始 SQL(需要更改)如下:
select code_id as CategoryID, code_desc as CategoryDescription
from codes
where code_id > '000001' and code_id < '000100'
order by CategoryDescription
结果返回为
- 000003 ***第一条记录
- 000002 ***另一条记录
- 000004 苹果
- 000016 书籍
- 000014 电缆
我想要以下结果(前两个带有星号,最后一个):
- 000004 苹果
- 000016 书籍
- 000014 电缆
- 000003 ***第一条记录
- 000002 ***另一条记录
我尝试了下面的 UNION 语句,但结果集自动按升序排序,默认情况下这两行在开头。
select code_id as CategoryID, code_desc as CategoryDescription
from codes
where code_id > '000003' and code_id < '000100'
--order by categoryDescription
UNION
select code_id as CategoryID, code_desc as CategoryDescription
from codes
where code_id > '000001' and code_id < '000004'
这似乎是一个比引入一堆联合更简单的解决方案:
尝试这样的事情: