| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8374 人关注过本帖
标题:请教int与varchar之间的一个转换问题
只看楼主 加入收藏
南川
Rank: 4
等 级:业余侠客
威 望:1
帖 子:111
专家分:235
注 册:2010-6-25
结帖率:86.21%
收藏
已结贴  问题点数:10 回复次数:4 
请教int与varchar之间的一个转换问题
表结构如下
图片附件: 游客没有浏览图片的权限,请 登录注册


实际数据如下
图片附件: 游客没有浏览图片的权限,请 登录注册


查询结构
图片附件: 游客没有浏览图片的权限,请 登录注册


问题:我用int的参数25作为条件去查varcha列。报错信息如上。按我的想法:SQL会把int型的25转换成varchar类型,然后到表中查数据。结构返回正常,不会报错。结果报的错如上。按错误信息提示,肯定是转换了表中的varchar列name。于是,我感觉这种思路,貌似不太合理。按我的想法,只需要把参数25从int转换成varchar,实际执行一次;而按错误信息,表中的数据需多次往int型转换。所以,请教:这里是怎么一种转换方法?

另附:
表改成这样:
图片附件: 游客没有浏览图片的权限,请 登录注册

操作结果就正常:
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: int varchar 
2010-08-16 11:33
aei135
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:232
专家分:1176
注 册:2009-4-6
收藏
得分:5 
你直接按varchar型写成 select * from dbo.mysql where name='25'不就行了,这个可能是你要查找的条件值为整数型,于是就把name列转为整数值跟你要找的条件值做比较,'非常'无法转换所以就报错吧
2010-08-16 13:33
SQLCenter
Rank: 2
等 级:论坛游民
帖 子:12
专家分:88
注 册:2010-8-8
收藏
得分:5 
SQL Server 对数据类型使用以下优先级顺序:
   1. 用户定义数据类型(最高)
   2. sql_varian t
   3. xml
   4. datetimeoffset
   5. datetime2
   6. datetime
   7. smalldatetime
   8. date
   9. time
  10. float
  11. real
  12. decimal
  13. money
  14. smallmoney
  15. bigint
  16. int
  17. smallint
  18. tinyint
  19. bit
  20. ntext
  21. text
  22. image
  23. timestamp
  24. uniqueidentifier
  25. nvarchar(包括 nvarchar(max))
  26. nchar
  27. varchar(包括 varchar(max))
  28. char
  29. varbinary(包括 varbinary(max))
  30. binary(最低)

--------------

数值类型比字符型高,所以“非常”转为INT
2010-08-16 14:30
w001001001
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-11-10
收藏
得分:0 
这SQLServer2000中有没有函数直接把varchar转换为Int型
2011-11-10 14:55
autobot
Rank: 4
等 级:业余侠客
帖 子:71
专家分:202
注 册:2007-9-6
收藏
得分:0 
MSSqlServer的查找的时候是这样运行的,select * from table where name = 25
它会把name这列遍历一下,一个一个对name等于25的,但是因为你这样写的是告诉系统25是INT型,他要把每列全强转为INT(你定义的时候可是varchar)所以到了
转换‘非常’的时候,肯定会报错的,这就和你写这个语句(select cast('非常' as int))报的错误一样。
2011-11-24 21:23
快速回复:请教int与varchar之间的一个转换问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017547 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved