sql查询出结果跟表中实际不一样

飞驴 2009-11-26 02:40:40
数据库是sql2000,表中字段是varchar(50),存的是"RPIZ-28FSG1QB",但是sql取出来成了"RPIZ-28fsg1qB"
sql语句如下
SELECT JX AS A,1 AS B,0 AS C FROM B_ZZBH WHERE ZZBH='QZ314' AND BDEL=1
如果不加where条件取出来全是大写;

单表中并不是所有的结果都这样,其它的结果又的都是大写,只有部分结果存在上述情况;

请求各位高手解释一下....
...全文
270 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 ljx85249201 的回复:]
数据库是sql2000,表中字段是varchar(50),存的是"RPIZ-28FSG1QB",但是sql取出来成了"RPIZ-28fsg1qB"
sql语句如下
SELECT JX AS A,1 AS B,0 AS C FROM B_ZZBH WHERE ZZBH='QZ314' AND BDEL=1
如果不加where条件取出来全是大写;

单表中并不是所有的结果都这样,其它的结果又的都是大写,只有部分结果存在上述情况;

请求各位高手解释一下....

[/Quote]

--取出来后转换大小写

SELECT upper(JX) AS A,1 AS B,0 AS C FROM B_ZZBH WHERE ZZBH='QZ314' AND BDEL=1

SELECT lower(JX) AS A,1 AS B,0 AS C FROM B_ZZBH WHERE ZZBH='QZ314' AND BDEL=1


--区分大小写查询

SELECT upper(JX) AS A,1 AS B,0 AS C FROM B_ZZBH WHERE ZZBH='QZ314' AND BDEL=1 COLLATE Chinese_PRC_CS_AS
飞驴 2009-11-26
  • 打赏
  • 举报
回复
nnd,删了重导,叫他邪门,谢谢各位,平均给分了
xman_78tom 2009-11-26
  • 打赏
  • 举报
回复
执行一下
select ascii(substring(jx,8,1)) from B_ZZBH
select ascii(substring(jx,8,1)) from B_ZZBH WHERE ZZBH=LEFT(@TM,5) AND BDEL=1
看看 "RPIZ-28FSG1QB" 字符串中 "F" 的 ASCII 码有没有区别。
飞驴 2009-11-26
  • 打赏
  • 举报
回复
SELECT UPPER(JX) AS A,1 AS B,0 AS C FROM B_ZZBH WHERE ZZBH=LEFT(@TM,5) AND BDEL=1
存储过程中用了upper;
我们可以处理这个问题,要说为什么出现这个问题呢;
hfdsoft 2009-11-26
  • 打赏
  • 举报
回复
RPWT.
飞驴 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 netcup 的回复:]
导入进去的,估计是数据类型不对、。
[/Quote]
通过Excel2003导进去的基础数据,表中的字段是varchar型的
netcup 2009-11-26
  • 打赏
  • 举报
回复
导入进去的,估计是数据类型不对、。
lrjt1980 2009-11-26
  • 打赏
  • 举报
回复
字段类型有问题吧.
飞驴 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 chinajiabing 的回复:]
SQL code
sql 不区分大小写的,你是不是存的候是小写..
你确定没有记错
[/Quote]
要是能发图就给你发个图了,表中的数据确实都是大写;
飞驴 2009-11-26
  • 打赏
  • 举报
回复
没有定排序规则呢;
这个表是基础数据,那些数据都是导入进去的;
ChinaJiaBing 2009-11-26
  • 打赏
  • 举报
回复

sql 不区分大小写的,你是不是存的候是小写..
你确定没有记错
忆轩辕 2009-11-26
  • 打赏
  • 举报
回复
那个字段的排序规则是什么?
飞驴 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 js_szy 的回复:]
SQL codeSELECTdistinct JXfrom B_ZZBH 看看都有什么
[/Quote]
加上条件,出来的是RPIZ-28fsg1qB
SELECT distinct JX from B_ZZBH where zzbh = 'QZ314'
华夏小卒 2009-11-26
  • 打赏
  • 举报
回复
SELECT distinct JX from B_ZZBH  看看都有什么
飞驴 2009-11-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fredrickhu 的回复:]
估计你本来里面就有RPIZ-28FSG1QB和RPIZ-28fsg1qB两种吧
[/Quote]
没有,那个字段是主键呢,看过了的,没有重复的,
--小F-- 2009-11-26
  • 打赏
  • 举报
回复
估计你本来里面就有RPIZ-28FSG1QB和RPIZ-28fsg1qB两种吧
飞驴 2009-11-26
  • 打赏
  • 举报
回复
RPIZ-28FSG1QB
SELECT JX AS A,1 AS B,0 AS C FROM B_ZZBH WHERE ZZBH='QZ314' AND BDEL=1
出来的结果是RPIZ-28fsg1qB
不加where条件出来的是RPIZ-28FSG1QB
而且并不是所有的都是这样;
icelovey 2009-11-26
  • 打赏
  • 举报
回复
不会吧, 有这种情况, 存的是大写, 出来的不是大写..应该不太可能

有请楼下~~
jwdream2008 2009-11-26
  • 打赏
  • 举报
回复
Up!

34,594

社区成员

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

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