T-SQL教程-3

当遇到夸库查询时,可以采用这种方法:

库名.dbo.表名,当然更加建议您使用 不同的数据库连接语句来操作

前段时间,才更加清楚地认识到了COUNT(字段)与COUNT(*)之间的区别,亡羊补牢,为时不晚

 

View Code
 最后一个介绍的函数就是统计记录数量的COUNT,这个函数有一点特别,因为它的即可以
 像其他聚合函数一样使用字段名做参数,也可以使用星号“*”做为参数。我们执行下面的SQL:
 SELECT COUNT(*),COUNT(FNumber) FROM T_Employee
 执行完毕我们就能在输出结果中看到下面的执行结果:
 8 8
 可以看到COUNT(*)、COUNT(FNumber)两种方式都能统计出记录的条数,据此为数不少
 的开发人员都认为COUNT(*)、COUNT(字段名)这两种使用方式是等价的。下面通过例子来说
 明,为了看到两种使用方式的区别需要首先向表T_Employee 中插入一条新的数据,执行下面
 的SQL:
 INSERT INTO T_Employee(FNumber,FAge,FSalary) VALUES('IT002',27,2800)
 需要注意的就是这句INSERT语句没有为FName 字段赋值,也就是说新插入的这条数据的
 FName 字段值为空,可以执行SELECT * FROM T_Employee 来查看表T_Employee 中的
 内容:
 FNumber FName FAge FSalary
 DEV001 Tom 25 8300.00
 DEV002 Jerry 28 2300.80
 HR001 Jane 23 2200.88
 HR002 Tina 25 5200.36
 IT001 Smith 28 3900.00
 IT002 27 2800.00
 SALES001 John 23 5000.00
 SALES002 Kerry 28 6200.00
 SALES003 Stone 22 1200.00
 可以看到FNumber 为IT002 的行的FName字段是空值。接着执行下面的SQL:
 SELECT COUNT(*),COUNT(FNumber),COUNT(FName) FROM T_Employee
 执行完毕我们就能在输出结果中看到下面的执行结果:
 9 9 8
 可以看到COUNT(*)、COUNT(FNumber)两个表达式的计算结果都是9,而COUNT(FName)
 的计算结果是8。也就反应出了两种使用方式的区别:COUNT(*)统计的是结果集的总条数,而
 COUNT(FName)统计的则是除了结果集中FName 不为空值(也就是不等于NULL)的记录的总
 条数。由于FNumber 为IT002 的行的FName 字段是空值,所以COUNT(FName)的计算结果
 是8。因此在使用聚合函数COUNT 的时候一定要区分两种使用方式的区别,以防止出现数据错
 误。
 [[提示:如果查询出来的条件没有NULL值 ,那么俩种查询条件无任何区别。

 

不知道,您有没有在你的项目中这样来使用GOTO语句

View Code
 /**
 GOTO语句可以实现无条件跳转
 语法格式 GOTO  lable 其中lable为要跳转到的语句标号
 遇到GOTO语句时直接跳转到lable标签处继续执行,而goto之后的语句不再执行
 **/
 
 declare @result int=0
 declare @sn int =0
 loop_1:--定义标号
 set @result=@result+@sn
 set @sn=@sn+1
 if(@sn<=100)
 goto loop_1--如果小于100就跳转到loop_1标号处
 print @result

你可能感兴趣的:(SQL)