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。