关于查询排序的问题

redwrite 2003-10-28 09:46:48
VB+Aceess

SELECT *
FROM Employ
WHERE employid in (2,1,7,5)

查询条件为(2,1,7,5)

查询后有四条语句,排序为 1,2,5,7

我的需求是严格按照查询条件进行排序,即 2,1,7,5

请问高手该怎么做?
...全文
44 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoki 2003-11-12
  • 打赏
  • 举报
回复
有了!
access的:
SELECT *
FROM Employ
WHERE employeeid in (2,1,7,5)
order by instr('2,1,7,5,',format(employeeid) + ',')
yoki 2003-11-12
  • 打赏
  • 举报
回复
哦,access不支持cast与charindex函数,我想想看有什么函数替代他们

谁有access的t_sql语法帮助?给我来一份好么?yokel_wb@163.com
redwrite 2003-11-12
  • 打赏
  • 举报
回复
to yoki(小马哥)
我试了,不行嘛,是不是不适合access呀
yoki 2003-11-07
  • 打赏
  • 举报
回复
改一下:
SELECT *
FROM Employ
WHERE employid in (2,1,7,5)
order by charindex(cast(employeeid as varchar(10)) + ',','2,1,7,5,')

--或者:order by patindex('%'+cast(employeeid as varchar(10)) +',%','2,1,7,5,')
yoki 2003-11-07
  • 打赏
  • 举报
回复
SELECT *
FROM Employ
WHERE employid in (2,1,7,5)
order by charindex(cast(employeeid as varchar(10)),'2,1,7,5')

--或者:order by patindex('%'+cast(employeeid as varchar(10)) +'%','2,1,7,5')
redwrite 2003-10-31
  • 打赏
  • 举报
回复
up
redwrite 2003-10-29
  • 打赏
  • 举报
回复
如果是修改表的结构在表中加入一个字段,
那么我的代码都要进行修改,
所以我希望能在查询是动态加入一列,
不知道这种方法是否可行,怎么去实现?
阿建像熊猫 2003-10-29
  • 打赏
  • 举报
回复
加一个隐藏的排序列,这个列为自动排序。在用SQL的时候,
order by 列

就可以了吧。
redwrite 2003-10-29
  • 打赏
  • 举报
回复
是查询是动态加入一列还是修改表的结构在表中加入一个字段?
rocllllll 2003-10-28
  • 打赏
  • 举报
回复
单独加一列LNO(int),在保存数据时,从上倒下为1,2...
并以此排序,我们时常这样做
redwrite 2003-10-28
  • 打赏
  • 举报
回复
一个条件一个条件的帅选效率太低,所以不能这样做。

to : cuizm(射天狼)
加一个隐藏的排序列,自己手工设置里面的值,以达到排序的目的!!
能说得具体一点吗,我不太明白。
luzufu 2003-10-28
  • 打赏
  • 举报
回复
你可以一个条件一个条件的帅选,然后把结果按照你的需求连接(union)就可以了
射天狼 2003-10-28
  • 打赏
  • 举报
回复
加一个隐藏的排序列,自己手工设置里面的值,以达到排序的目的!!

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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