sql 排序问题。in (xx,xx,xx)

keagan 2004-03-15 03:39:53
例如数据库内容如下:

id num

1 111
3 222
5 333

......


我用语句查找数据:
SELECT * FROM num WHERE (num IN ('222', '333', '111'))

得到的结果会自动以id排序,结果如下:
1 111
3 222
5 333



我想得到的结果是以条件IN 里的顺序排序,该如何做?
我想得到的结果是:

3 222
5 333
1 111




谢谢
...全文
80 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
keagan 2004-03-15
  • 打赏
  • 举报
回复
呵呵,找到原因了。
问题已解决,谢谢!


原来是数据后的多余空格造成的。
keagan 2004-03-15
  • 打赏
  • 举报
回复
谢谢回复。

执行您的查询非常正常,也得到正确的结果。

但在库里建个实际的表(id,num),就得不到正确的结果。(还是按id排序) :(

有点晕。
zjcxc 元老 2004-03-15
  • 打赏
  • 举报
回复
--测试
declare @t table(num varchar(10))
insert @t select '111'
union all select '222'
union all select '333'
union all select '444'
union all select '000'

--查询
SELECT * FROM @t
WHERE num IN ('222', '333', '111')
order by charindex(num,'222,333,111')

SELECT * FROM @t
WHERE num IN ('222', '444', '111')
order by charindex(num,'222,444,111')

/*--测试结果
num
----------
222
333
111

(所影响的行数为 3 行)

----------
222
444
111

(所影响的行数为 3 行)
--*/
keagan 2004-03-15
  • 打赏
  • 举报
回复
:(
还是不行,运行成功,但得不到想要的结果。(结果还是按111,222,333排序)

会不会是类型问题?

SELECT * FROM num WHERE (num IN ('222', '333', '111')) ---条件是字符型
order by charindex(num,'222,333,111')--条件是否会转为数值型?

WbtServer 2004-03-15
  • 打赏
  • 举报
回复
SELECT * FROM num WHERE num IN ('222', '111', '333')
order by charindex(num,'222,333,111')
zjcxc 元老 2004-03-15
  • 打赏
  • 举报
回复
--搞错,这样
SELECT * FROM num WHERE (num IN ('222', '333', '111'))
order by charindex(num,'222,333,111')
javahou 2004-03-15
  • 打赏
  • 举报
回复
还有没有更简便的
up
keagan 2004-03-15
  • 打赏
  • 举报
回复
to leeboyan(宝宝)

您的回复可以解决该问题,但如果实际使用时会使语句非常非常非常的长。
而且看起来语句效率也很低。(个人见解)


谢谢
keagan 2004-03-15
  • 打赏
  • 举报
回复
to zjcxc(: 邹建 :)

执行不了,提示:

charindex 函数要求有 2 到 3 个参数。
zjcxc 元老 2004-03-15
  • 打赏
  • 举报
回复
SELECT * FROM num WHERE (num IN ('222', '333', '111'))
order by charindex(num,'222', '333', '111')
leeboyan 2004-03-15
  • 打赏
  • 举报
回复
SELECT * FROM num WHERE (num IN ('222'))
union all
SELECT * FROM num WHERE (num IN ('333'))
union all
SELECT * FROM num WHERE (num IN ('111'))

34,590

社区成员

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

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