sqlserver 怎么判断select 有没有查到数据

select @name from student where name='张三' 如果表里面有张三,@name就等于张三 ,如果表里面没有张三呢 ,@name等于什么?
变量给默认值处理吗?
上面的语句写错了
select @name=name from student where name='张三'

不存在则@name为空


使用@name变量还需要声明不如使用COUNT



使用COUNT

SELECT COUNT(1) FROM student WHERE Name='张三'

--如果存在,等于存在个数
--如果不存在,为0

追问

我查出来@name做判断用的 ,
if(@name is null or @name='') 这样可以判断吗

追答

可以

但是如果select @name from student where name='张三'存在多条数据

则@name的值是最后返回结果的最后一个值,如果这不影响那就应该没问题了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-10
...不是这样的,查询语句返回的是 int 如果没有就是0 。有几条返回几,返回的是一个datatable,你这个语句的@name列全都是张三,追问

你在sql里面查一下就知道 ,如果有人的话查出来是张三 如果没有张三的话查出来什么都没有

追答

对啊,没张三 就是个空表。0行, 有的话这也只有一列,是@name这列,肯定都是张三

相似回答