服务器是Win2003英文版(但是国家语言等都设置成中国),用SQL2000
有一个员工资料库表HR_1(里面是所有员工的资料),如果用select * from hr_1查看,显示的记录都是自动按照员工号(工号是字符类型Varchar的)从小到大排序的:
(DCNO 是字段名 varchar类型,代表工号 NAME是名字, DEPT是部门编号): DCNO NAME DEPT
10001 张三 HR,
10002 李四,
20001,
30001,
...
70001 FB,
70002 FB,
...
90009另外有一个考勤表KQ_1,其实也是每个员工一条记录,只是记录了每个员工的考勤信息,如果用select查看,也是自动按照工号排序的:
(EMPLOYEE 是这个表里的工号字段,varchar类新)EMPLOYEE NAME
10001 张三 ,
20001 李四 ,
20002,
30001,
...
70001,
70002,
...
90009但是我用了一个语句查询餐饮部的员工的考勤记录(部门代号是‘FB’):
SELECT * FROM KQ_1 WHERE EMPLOYEE IN (SELECT DCNO FROM HR_1 WHERE DEPT='FB')
结果显示的界面上,数据都对,但是70007开头到70010的员工排在了最前面,把70001开头的员工都挤下去了:
70007,
70008,
70009,
70010,
70001,
70002,
70003更加怪的是:我把这个数据库原封不动的备份出来,放到我的笔记本上(XP中文版本,SQL2000)里,运行的结果是正常的:
70001,
70002,
70003
...
70007,
70008,
70009
我也查过服务器上这两个表的排序规则,都是Chinese-PRC,
所以头都晕了,只好请教各位高手,请大家指点一下,谢谢
有一个员工资料库表HR_1(里面是所有员工的资料),如果用select * from hr_1查看,显示的记录都是自动按照员工号(工号是字符类型Varchar的)从小到大排序的:
(DCNO 是字段名 varchar类型,代表工号 NAME是名字, DEPT是部门编号): DCNO NAME DEPT
10001 张三 HR,
10002 李四,
20001,
30001,
...
70001 FB,
70002 FB,
...
90009另外有一个考勤表KQ_1,其实也是每个员工一条记录,只是记录了每个员工的考勤信息,如果用select查看,也是自动按照工号排序的:
(EMPLOYEE 是这个表里的工号字段,varchar类新)EMPLOYEE NAME
10001 张三 ,
20001 李四 ,
20002,
30001,
...
70001,
70002,
...
90009但是我用了一个语句查询餐饮部的员工的考勤记录(部门代号是‘FB’):
SELECT * FROM KQ_1 WHERE EMPLOYEE IN (SELECT DCNO FROM HR_1 WHERE DEPT='FB')
结果显示的界面上,数据都对,但是70007开头到70010的员工排在了最前面,把70001开头的员工都挤下去了:
70007,
70008,
70009,
70010,
70001,
70002,
70003更加怪的是:我把这个数据库原封不动的备份出来,放到我的笔记本上(XP中文版本,SQL2000)里,运行的结果是正常的:
70001,
70002,
70003
...
70007,
70008,
70009
我也查过服务器上这两个表的排序规则,都是Chinese-PRC,
所以头都晕了,只好请教各位高手,请大家指点一下,谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货