日度归档:2018年8月8日

mssql sqlserver sql脚本中变量简介


摘要:
下文将详细的介绍sql脚本中变量

程序设计语言中都有常量和变量的概念,sql脚本也不例外,下文将分别讲述sqlserver中的变量

一、sql变量简介

sql变量与常量的不同之处,在于变量会随着运行过程而发生变化。

一、按作用范围区分”局部变量、全部变量”

局部变量: 通常我们将用户在程序中定义的变量,称之为局部变量
局部变量:局部变量作用范围 –变量定义开始至批处理结束的位置,一个批处理中不能重复定义相同变量。
局部变量:局部变量以@开头定义
局部变量:局部变量的作用为临时保存计算的中间结果。
————————————————————–
全局变量: 全局变量通常为系统定义
全局变量:全局变量以@@开头定义
全局变量:常为系统定义的全局信息
例:
@@version —数据库版本
@@spid —当前进程Id

二、sql变量定义方法

sqlserver中变量需先定义后赋值使用
变量定义采用declare 语句
变量定义语法:

   ---定义单个变量
   declare @变量名称 变量类型[=默认值]
   ---同时定义多个变量,变量后面使用逗号分隔
   declare @变量名称1 变量类型[=默认值],@变量名称2 变量类型[=默认值] ...
   例:
    declare @a int  
    declare @b int,@c int @d datetime ,@e decimal(10,2)

例:
declare @a int
go
set @a =100
—此处将报错,因为脚本go已经结束批处理
—此处set @a赋值,则会提示变量未定义

三、sql变量赋值

sql脚本中变量被定义后,变量被初始化null,需使用set或select为变量进行赋值

  declare @a int 
  set @a =1  ---设置变量值为1
  
  select @a =[列名] from tableName 
  ---此处将tableName中一行中的值赋值给变量@a


注意:
如果使用select对变量进行赋值时,当select中存在多行记录时,将采用最后一行所对应的结果赋值给相应的变量中。

mssql sqlserver sql脚本中常量简介


摘要:
下文将详细的介绍sql脚本中常量

程序设计语言中都有常量的概念,sql脚本也不例外,下文将分别讲述sqlserver中的常量

一、sql常量简介

1.1 字符串常量
字符串常量由两个单引号包含,
由字母数字字符(a~z、A~Z和0~9)以及特殊字符_ @ # 等组成。
例: ‘maomao365.com’
‘猫猫小屋’

如果字符串常量中存在单引号那么需采用双引号的形式
例:
‘猫猫”小屋’

1.2. Unicode 字符串常量
Unicode字符串同普通字符串的区别在,在字符串前面加入一个N标识符,N需为大写.
例:
N’maomao365.com’
N ‘猫猫小屋’
———————–
Unicode常量为Unicode格式数据,
Unicode常量每个字符采用2个字节存储
1.3.二进制常量
二进制常量由前辍0x,采用十六进制数字字符串。
类似数值型,不需使用单引号。
例:
0x12555
0xAFED909
1.4.bit常量
bit常量由数字0或1表示,
同数值型表示法类似,如果输入一个大于1的数值型变量,则自动转换为1.
1.5. datetime常量
datetime常量需使用特定格式的字符日期值来表示,用单引号括起。
例:
‘July 8, 2018’
‘20180821’
1.6. int 常量
int为整型变量 ,不需使用单引号
例:
8080
7878
1.7. decimal 常量
decimal为包含小数位的数值型,不需使用单引号
例:
189.898
20
20.890
1.8 float和real常量
float和real常量使用科学记数法来表示。如:
180.6E5
0.8E-1
1.9. money 常量
money常量存储货币数据,无需使用单引号.
例:
$12.88
¥1818
1.10. uniqueidentifier 常量
uniqueidentifier常量为guid类型,需使用单引号括起
例:
8caf1dd1-9836-4619-a880-b82988838242

mssql sqlserver sql脚本中sum、count函数大白话篇


摘要:
下文采用通俗易懂的方式讲述sum count聚合函数的区别
实验环境:sqlserver 2008 R2


sum、count函数的区别:
1.功能不同
sum(表达式):对表达式中的值进行求和计算
count(表达式):对表达式中的值进行求行计算
2.对null空值处理
sum(表达式):忽略表达式中的nul值
count(表达式):表达式中的值为null,则不统计此行
例:

    create table test(A int)
go

insert into test(A)values(5), 
(2),(null) 
go

 select sum(A) as [sum],
 count(A) as [count] from test 
 
go
truncate table test
drop     table test 
------ 输出----
 7   2 
mssql_sqlserver_count_sum大白话篇

mssql_sqlserver_count_sum大白话篇