大神帮我看看题目怎么解决

sido 2013-10-14 02:50:27
大概题目就是这样子。是我昨天面试没做出来题目

@x declare varchar(10) ,@y declare varchar(10) set @y=''

1.select @x/0
2.select @x/2
3.select @y/0
4.select @y/2
以上表达式,哪些有错误
...全文
149 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
因为第3个,由于上面把@y赋值为''空串,在做除法的时候,会转化成0,也就是0/0,分母为0,所以报错
Landa_Peter 2013-10-14
  • 打赏
  • 举报
回复
@x declare varchar(10) ,@y declare varchar(10) set @y=''--放在declare后面变量,还需要给出@x赋值,且字符不能被运算
declare @x varchar(10),
        @y varchar(10)
set @y='100'
set @x='200'
--select @x/0 分母不能为0,否则数据库会报错
select @x/2
--select @y/0 分母不能为0,否则数据库会报错
select @y/2
  • 打赏
  • 举报
回复
第3个是错误的哈


declare @x varchar(10) 
declare @y varchar(10) 
set @y=''

select @x/0   --null/0 返回null,不会报错

select @x/2

/*
消息 8134,级别 16,状态 1,第 9 行
遇到以零作除数错误。
*/
select @y/0

select @y/2
Landa_Peter 2013-10-14
  • 打赏
  • 举报
回复
declare @x int , --varchar(10)是字符型不能计算
        @y  int
set @x=2 
set @y=3
--select @x/0 0不能做除数,否则会报错
select @x/2
--select @y/0 0不能做除数,否则会报错
select @y/2   
發糞塗牆 2013-10-14
  • 打赏
  • 举报
回复
说实话全部都不合理,最起码是类型转换问题,如果排除类型问题,第一、三个会出错。不能在未处理前除以0,另外你的定义语句都有问题

34,576

社区成员

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

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