标题:[求助]语句不理解
只看楼主
flmls
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-2-6
得分:0 
应该是错的啊,字符和数字不能相加啊

结果也是错的啊
将 varchar 值 'aa' 转换为数据类型为 int 的列时发生语法错误。

我的理解是,只有是 全是数字的字符型 是可以加减的,有字母的字符型是不行的,可以这样认为吗

[此贴子已经被作者于2007-3-22 0:24:30编辑过]

2007-03-22 00:18
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
得分:0 

所以说是默认要将字符转成数字啊
select 'aa'+cast(11 as varchar) 这样就是对的了


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-03-22 00:23
flmls
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-2-6
得分:0 
上面的看懂了,要同样类型的数据才能运算
select 'aa'+'bb'  显示aabb
select cast(11 as varchar)+cast(22 as varchar)  显示1122

select cast(11 as varchar)+cast(22 as varchar)+1  显示1123

select cast(11 as varchar)+cast(22 as varchar)+1  错误

我的理解是,只有是 全是数字的字符型 是可以数学加减的,有字母的字符型是不行的,可以这样认为吗
2007-03-22 00:31
xiyou419
Rank: 1
等 级:新手上路
威 望:2
帖 子:104
专家分:0
注 册:2007-3-18
得分:0 
以下是引用flmls在2007-3-22 0:31:43的发言:
上面的看懂了,要同样类型的数据才能运算
select 'aa'+'bb'  显示aabb
select cast(11 as varchar)+cast(22 as varchar)  显示1122

select cast(11 as varchar)+cast(22 as varchar)+1  显示1123

select cast(11 as varchar)+cast(22 as varchar)+1  错误

我的理解是,只有是 全是数字的字符型 是可以数学加减的,有字母的字符型是不行的,可以这样
最后的错误语句写错了,本来想写的是什么呢?

道德往往可以弥补智慧的缺陷;但智慧永远不能填补道德的空白.
2007-03-23 22:47
flmls
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-2-6
得分:0 
也忘记了,好象是准备写
select cast(11 as varchar)+cast(22 as varchar)+a 错误
2007-03-26 21:33
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
得分:0 
select cast(11 as varchar)+cast(22 as varchar)+'a' 少了单引号

26403021 sql群 博客 blog./user15/81152/index.shtml
2007-03-26 22:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-125235-1-1.html




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

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