sql - 选择具有特定顺序的特定记录而不使用通用条件

标签 sql sql-server sql-server-2008

我的目的如下:

我有一个“StudentID”列表...假设:4、2、3、5、7(例如存储在数组中), 我想创建一个 select 语句,返回列表中指定 studentID 的 StudentID 和 StudentName,与列表的顺序相同

所以结果应该是:

StudentID StudentName
4         Philip
2         Mary
3         Tima
5         Lara
7         Michel

我怎样才能做到这一点?

最佳答案

我会将 ID 数组放入一个临时表中,然后加入该临时表以进行选择。在临时表中创建标识列将保留所需的顺序。

create table #temp (
    SortID int identity,
    StudentID int
)

insert into #temp 
    (StudentID)
    select 4 union all
    select 2 union all
    select 3 union all
    select 5 union all
    select 7

select s.StudentID, s.StudentName
    from StudentTable s
        inner join #temp t
             on s.StudentID = t.StudentID
    order by t.SortID

关于sql - 选择具有特定顺序的特定记录而不使用通用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4934034/

相关文章:

mysql - 将 MySQL MyISAM 导入 SQL Server

mysql - 使用链接 DB 中的另一个 SP 执行 SP

sql-server - 为什么在分区 'SWITCH' 语句中源和目标必须驻留在同一文件组中?

sql - 从 sql 查询返回默认记录

sql - 如何让 EF 使用实体作为导入存储过程的参数?

mysql - 限制数据库表包含唯一数据

.net - : Constraint or FK? 对于状态列有什么更好的

sql - 使用 SQL Like 对一系列字符进行模式匹配

c# - 替换多个字段中的多个特殊字符 SQL

java - 在多用户环境中使用 hibernate 更新运行平衡