在学习ado.net时,这些事我们还真得记住!
在使用group by分组时我们应该注意一下事情:
select age,count(*) from Employee group by age //按照年龄进行分组
当我们想要检索出分组年龄大于2个时,
select age,count(*) from Employee wherecount(*)>2 group by age // 这是一种错误写法,我们会发现聚合函数不能 出现在where子句中
我们应该使用having来检索出分组年龄大于2个时
select age,count(*) from Employee group by agehaving count(*)>2 // having 是对分组的信息进行过滤,能用的列和 select中的中能用的列是一样的。
having和where不能说谁能代替谁,where是对原始的数据进行检索,having是对分组后的数据进行检索。
在使用order by分组时我们学会两个函数
order by 可运用于歌曲排行榜的排名,以及热门文章的推荐等方面都是很实用的
例如我想要检索出歌曲排行榜的前10首好听的歌曲。
select top 10 from Music order by hotCount
在使用distinct检索出无重复行的时候,我们必须要注意它是争对行来的,也许我们查询出来的列中有很对相同的值。
union可以将表多个查询的结果合并在一起,多个表可以不存在关系
例如:select name,age from emplyeeA union select name,age from emplyeeB, 注意这连个表查询的列数和数据类型要是一样的。但是不要求列名都是一样。
例如: select name,age,0 from emplyeeA union select name,age,salary from emplyeeB
注意:union会把重复的数据distinct掉,只保留一个。这个时候我们可以使用union all来阻止默认的合并重复行的操作。
例如: select name,age,0 from emplyeeA union all select name,age,salary from emplyeeB
union可用在报表查询的时候会很有用。
select name max(salary) fromA Uion all select name max(salary) from A Uion all select name max(salary) from A Uion all select name max(salary) from A
ado.net的数字函数,主要有ABS()、Celling()、Floor()、Roun()
1.ABS()主要是用来取绝对值的函数,用法例如: ABS(-3) 结果:3
2.Celling()是天花板函数,舍入道最大整数。用法例如: 3.33将舍入到4 2.88将舍入到3 -2.33将舍入到-2
3.Floor()是数舍入到最小整数,刚好和Celling函数相反。用法例如: 3.33将舍入到3 2.88将舍入到2 -2.33将舍入到-3
4.Round四舍五入。舍入"到离我半径最小的整数"。Round---->“半径”。Round(3.33123,2) 结果:3.33000
ado.net的字符串函数,主要有Len、Lower、Upper、Trim、Substring
1.Len计算字符串的长度
2.Lower、Upper,把字符串转换成小写、大写。
3.Trim,清空空格。LTrim是清空左边空格;RTrim是清空右边的空格。要想清空左右两边的空格可以这样:
Len(LTrim(RTrim(' bb '))) 结果:2
4.Substring(string,start_position,length)截取字符串的长度。第一个参数是要截取的主字符串,第二个参数start_position
为开始截取的位置,第三个参数是要截取的长度。例如:Substring('liwei12345',0,5) 结果为:liwei
---------------------- Windows Phone 7手机开发 .Net培训、期待与您交流! ----------------------