sql - 显示不带 order by 子句的 SQL 查询的顺序

标签 sql sql-server tsql

我正在 SQL Server 中编写一个简单的查询:

Select 
    EmpId, EmpName, Sal 
from 
    Emp 
where  
    EmpId in (10,9,5,7,3,8);

我想以给定的相同顺序获得输出,即; 10,9,5,7,3,8

实际上,无论我给出什么结果,都会按给定的顺序显示,而不需要 按升序或降序排列。

我怎样才能做到这一点?请帮忙。

最佳答案

无法在本地执行此操作。 尝试:

SELECT EmpId,EmpName,Sal
FROM Emp
WHERE EmpId IN (10,9,5,7,3,8)
ORDER BY CASE EmpId
    WHEN 10 THEN 1
    WHEN 9 THEN 2
    WHEN 5 THEN 3
    WHEN 7 THEN 4
    WHEN 3 THEN 5
    WHEN 8 THEN 6
    ELSE 7
END;

关于sql - 显示不带 order by 子句的 SQL 查询的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31980491/

相关文章:

mysql - 按升序返回行

sql - 哪个查询的性能更好?

sql - 如何将 Try/Catch 添加到 SQL 存储过程

sql-server - T SQL - 在第一个 '-' 之后将列拆分为两列

sql - Postgresql 正则表达式搜索单词不区分大小写并忽略变音符号

mysql - 尝试输入多个表时数据丢失(讨论)

python - 使用Python从数据库中提取

javascript - Node/Express Rest API - 如何从 mssql 抛出错误

sql-server - 列出 SQL Server 2014 中的数据库和表空间

sql-server - 我怎样才能得到一个特定索引列首先出现的索引列表?