本周和上周经理给我们做了两次关于sql的培训,感觉很有用所以总结一下!
Union:只有两张表结构相同的结果集才能使用union,将所有的表数据放到一个结果集中。
Count:计算参数列表中的数字项的个数。括号里边可以是列名,也可以是参数值。
Case:case只能跟在select后边,不能用在where后边。from后边如果是子查询的话必须添加子查询结果集名称。
Join:连接号,分为inner join(内连接)和outer join(外连接),其中outer join又分为left join(左连接)和right join(右连接)。inner join:只返回两个表中联结字段相等的行;left join:返回包括左表中的所有记录和右表中联结字段相等的记录;right join:返回包括右表中的所有记录和左表中联结字段相等的记录。
Exists:检验查询是否返回数值,后边跟子查询。
Isnull/Is not null:判断是否为空。
Cube:汇总数据,生成多维数据集。cube只有在group by分组两个以上才起作用,是对group by后的字段分组后在进行单独分组。
Over:可以与聚合函数一起使用来得出叠加结果集。over(order by。。。)后跟排名开窗函数,over(partition by。。。)后跟聚合开窗函数。使用over子句比子查询效率高。
Partition by:对结果集进行分组时会有重复数据,group by不会出现重复数据。
为查询出来的每一行记录生成一个序号,使用方法为:Row_number() over(order by ),只能与over一起用。
exec 存储过程=变量 等同于return 变量。
select 任意值相当于赋值,即查询任意值,例如:select 1,执行后显示结果为1。
some和any在比较数值的时候是等效的。
group by 列1,列2 with roll up,进行分组时则以列1为主,忽略列2。
sql中只有while循环没有for循环。
类型转换:convert(转换后类型(长度),变量)。
返回新字符串:substring(字段,0,长度),自动在字段前加空格输出长度。
substring(字段,1,长度),从第一个字符开始输出长度。
substring后可跟字符串,需要用单引号括起来。
cast(转换的字段 as 转换的类型),与convert相反。
avg聚合函数,跟在group by后边。
avg(distinct 列),先将列排重再求平均值。
len函数不区分单双字节,因为返回的是字符个数而不是字节数。
round(变量名,长度),四舍五入函数:若长度为负数,则从小数点左边第length位四舍五入;若长度为正数,则四舍五入为length所指定的小数位数。
getdate():获取当前系统时间。
dateadd(datepart,number,date):将date中的datepart部门加上number,然后重新得到一个新的日期。
datediff(datepart,日期1,日期2):将日期2中的datepart减去日期1中的datepart,返回差值。
datepart(datepart,日期):datepart为dd/mm/yy,返回日期中的datepart部分。
year(数字):是在1900年加上数字进行转换的年,例如:year(365),则输出1901,year(300),则输出1900。
rand():随机函数,生成为小数,一般需要转换为整数,例如rand()*100。
seed(rand()*1000),生成不同随机数。
NewId():自动生成一个GUID唯一标识。
reverse(字符串):按相反顺序返回字符串。
grouping:可以接受一列,返回0或者1。如果列值为空,那么GROUPING()返回1;如果列值非空,那么返回0。GROUPING只能在使用ROLLUP或CUBE的查询中使用。
partition by与group by功能相同,区别为前者若有重复的话显示多行,后者有重复的话只显示一行。
rank后只能跟order by。
Isnull(列名,替换值):替换函数,将列中为null的值变为替换值。
charindex(查询词,列,位置):返回字符串中指定表达式的起始位置,只能与substring一起使用。若查询词前加N代表nvarchar。
stuff(字符1,m,n,字符2):将字符1从第m个字符开始删除n个字符,并且将字符2粘贴在删除的位置。
trim:去掉空格,ltrim:去掉左侧空格,rtrim:去掉右侧空格。
right(字符串):返回字符串中从左边开始的指定个数字符串。
patindex(查询词,字段):查询词前后必须加%,与charindex大致相同只是少了位置。
replicate(字符,数值n):将字符复制n倍并成一个组合字符串。
未完,待续......