2 wangf1978 wangf1978 于 2015.06.03 10:19 提问

怪异:sql字符比较问题

通过vb6将word文本(wordApp.ActiveDocument.Range().text,选择题答案,比如A)导入sql一表中,另一表手工录入学生答案(比如A),将两者字符进行比较判断答案正误并获得相应分值时,出现无法解决的问题:个别题目两者答案相同,可以判断出正确,并显示得分。个别题目虽然两表答案一致,但两者比较结果却不正确。不知道原因是什么,应如何解决?
注:两表答案字段类型都是varchar。
a表(此表da字段中字符由word导入)
id da fs
1 A 2
2 B 2
3 C 2
b表
xh tmid da
1 1 A
1 2 B
1 3 C
select b.xh as xh,tmid as tmid,(case when b.da=a.da then a.fs else 0 end) as df from
b left join a on b.tmid=a.id
查询结果
xh tmid df
1 1 2
1 2 0
1 3 2
第2题两表答案字符相同,但对比结果却不正确,是否a表中由word导入字符的问题?

3个回答

Tiger_Zhao
Tiger_Zhao   Rxr 2015.06.03 10:32
    select b.xh as xh,tmid as tmid,(case when TRIM(b.da)=TRIM(a.da) then a.fs else 0 end) as df
      from b left join a on b.tmid=a.id

可能有空格吧。最好在导入的时候就把空格去掉。

wzy383545337
wzy383545337   2015.06.03 10:43

我也觉可能有空格,一次我们项目在导入全国城市区县的时候 citycode 带了完全肉眼察觉不到的空格...排查了好久才发现的了

wangf1978
wangf1978 经过细致检查,确定有一个空格,但是有別于一般空格符,回查导入的word文档,初步判断是由于段落符导致的。请问,在vb6中如何去除wordApp.ActiveDocument.Range().text段落标记等字符?在sql中又怎么办?
2 年多之前 回复
wangf1978
wangf1978 经过细致检查,确定有一个空格,但是有別于一般空格符,回查导入的word文档,初步判断是由于段落符导致的。请问,在vb6中如何去除wordApp.ActiveDocument.Range().text段落标记等字符?在sql中又怎么办?
2 年多之前 回复
wangf1978
wangf1978   2015.06.03 11:27

感谢上面两位义士关注,数据已检查过没有空格,其实在导入时已筛除空格符。奇怪的是,a表中第2题的字符我用键盘重新录入便可以正确比较了,何解?会不会是word的字符有问题?

Csdn user default icon
上传中...
上传图片
插入图片