如何使 where ID in(2,4,3) 按括号中的位置排序?

powbcom 2008-01-16 05:46:34
例如 select ID from t where id in (2,4,3,1) 按位置排序,显示为:
ID
2
4
3
1
而不是
ID
1
2
3
4
...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
powbcom 2008-01-16
  • 打赏
  • 举报
回复

通过了,原来是数据类型的问题!
powbcom 2008-01-16
  • 打赏
  • 举报
回复
不行啊,试过了

请数字换大点试下,如 1换为1111
bqb 2008-01-16
  • 打赏
  • 举报
回复
select id from t order by charindex(id,'2,4,3,1')
dobear_0922 2008-01-16
  • 打赏
  • 举报
回复
select   ID   from   t   where   id   in   (2,4,3,1) 
order by charindex(','+rtrim(id)+',', ',2,4,3,1,')
昵称被占用了 2008-01-16
  • 打赏
  • 举报
回复
declare @p varchar(100)
set @p='2,4,3,1' --参数

exec('
select ID from t where id in ('+@p+')
order by charindex('',''+rtrim(id)+'','','','+@p+','')
')

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧