Sql 是否有其他方法将一个项目浮动到已排序名称列表的顶部?

Sql 是否有其他方法将一个项目浮动到已排序名称列表的顶部?,sql,tsql,sql-server-2008-r2,Sql,Tsql,Sql Server 2008 R2,这就是我提出的将“默认值”浮动到顶部并对其余内容进行排序的方法: SELECT 'default' AS name, 'AAA' AS tag UNION SELECT name, name AS tag FROM (SELECT DISTINCT TOP (100) PERCENT name FROM AccountManager

这就是我提出的将“默认值”浮动到顶部并对其余内容进行排序的方法:

SELECT        'default' AS name, 'AAA' AS tag
UNION
SELECT        name, name AS tag
FROM            (SELECT DISTINCT TOP (100) PERCENT name
                          FROM            AccountManager
                          WHERE        (name <> 'default')
                          ORDER BY name) AS derivedtbl_1
ORDER BY tag
有没有更简单/更好的方法

SELECT name 
FROM AccountManager
GROUP BY name /*To retain DISTINCT semantics from original query*/
ORDER BY CASE WHEN name = 'default' THEN 0 ELSE 1 END, name
注意:

如果指定了select DISTINCT,则ORDER BY项目将失败,并且必须出现在选择列表中。因此使用分组方式

注意:


如果指定了select DISTINCT,则ORDER BY项目将失败,并且必须出现在选择列表中。因此,使用GROUP BY

可以更改它们的排序方式:

select name
from AccountManager
order by case name when 'default' then 0 else 1 end, name

您可以更改它们的排序方式:

select name
from AccountManager
order by case name when 'default' then 0 else 1 end, name

谢谢,这正是我需要的。好奇的是,按案例排序技术是一种通常可移植的技术还是一种sql server技术?@AaronAnodide-它是标准sql。谢谢,这正是我需要的。好奇的是,按案例排序技术是一种普遍可移植的技术,还是一种sql server技术?@aaronode-它是标准sql。