sql-server - 有没有办法通过SQL查询先获取一些选定的数据,然后按升序获取其余数据

标签 sql-server

假设我在表 tbl 中以非规范方式(不按顺序)存储国家/地区数据。现在我想首先显示国家/地区 '美国'、'加拿大' 和 '印度',然后按升序显示其他国家/地区。

Country

India
China
Brazil
Azerbaijan
Bahamas
United State
Denmark
Canada

现在我想要这个数据:

Country

United State        // US,Canada,India should be First 3.
Canada
India
Azerbaijan         // After rest country comes in ascending Order.
Bahamas
Brazil
China
Denmark

非常感谢任何建议。

最佳答案

SELECT Country FROM tbl 
ORDER BY CASE
  WHEN Country='United State' THEN 0
  WHEN Country='Canada' THEN 1
  WHEN Country='India' THEN 2
  ELSE 3
END, Country;

关于sql-server - 有没有办法通过SQL查询先获取一些选定的数据,然后按升序获取其余数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16791879/

相关文章:

sql - 动态 SQL 中的循环

sql - 在指定记录之后查找以前的记录并加入它们

sql - 有没有办法在 SQL Server 中查询 JSON 列而忽略键的大小写?

sql-server - 如何以编程方式创建 DSN?

mysql - 从 SQL 中的串联属性查询日期

SQL Server 在主表中加入两个没有重复的表

sql-server - 如何判断 SQL Server 2005 数据库中哪些表占用了最多的空间?

.NET、SqlConnection 对象和多线程

sql - 检查子查询中是否存在记录

c# - 将实体(和相应的表)添加到 EF DB-first 模型