字段为字符串时怎样索引?在线等待!

lV运用 2003-09-13 05:25:45
我有如下结构的表

字段名 工号 姓名 两者均为字符型

有如下记录
1 张三
2 李四
3 王五
。。。
11 张一
21 张二
12 李一
。。。
我通过order by 工号结果得到如下
1 张三
11 张一
12 李一
。。。
2 李四
21 张二
。。。
3 王五
而我的要求是按工号的顺序排列即从1,2,3..10,11...19,20..?




...全文
44 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lV运用 2003-10-01
  • 打赏
  • 举报
回复
有没有人再帮我解释一下。
lV运用 2003-09-15
  • 打赏
  • 举报
回复
修改数据结构不行,因为这个表是定的,有没有其它的方法?

有谁有更好的方法?
shuixin13 2003-09-14
  • 打赏
  • 举报
回复
那你就修改表结构吧,
将该字段设置为数值型
lV运用 2003-09-14
  • 打赏
  • 举报
回复
to :tjff2000(fengyun)
工号前应该加0,比如1就是001。

我这样很难处理,还有别的方法吗?
tjff2000 2003-09-14
  • 打赏
  • 举报
回复
是的,工号前应该加0,比如1就是001。
dawnming 2003-09-14
  • 打赏
  • 举报
回复
帮你up
lV运用 2003-09-14
  • 打赏
  • 举报
回复
to shuixin13(犬犬(心帆))
我用的是dbf 数据库。用SELECT * FROM ... ORDER BY CONVERT(工号,INTEGER),姓名 不行
shuixin13 2003-09-13
  • 打赏
  • 举报
回复
SELECT * FROM ... ORDER BY CONVERT(工号,INTEGER),姓名
nyf1220 2003-09-13
  • 打赏
  • 举报
回复
不用这么麻烦吧!
设计数据库的时候,应该吧工号的格式转化一下,比如统一为:000*,不就好排序了吗?
malebird 2003-09-13
  • 打赏
  • 举报
回复
针对你所用的数据库不同可能不同
如果是sql server(假设你的编号最长为两位)
可以这样:
select 工号, 姓名,case len(工号)
when 1 then '0'+工号
else then 工号
end as newcol
order by newcol
如果是oracle则用decode函数 .........

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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