子查询的应用及函数 20140909

一、子查询的应用

1.分页查询
1)每页显示5条数据 ; 2)要找第几页 top 5*(3-1) --第3页

select top 5 * from car where code not in --跳过……后取前几条数据
(
 select top 10 code from car --跳过多少条中间值
)

--查指定页的数据
2.取总页数
select ceiling(COUNT(*)/5.0) from car

PS:count(*)是整数类型,求总页数就需要返回值为小数类型,所以5需要写为5.0,求得小数类型后再取天花板数即是总页数.

二、函数

1.幂函数

SQRT --平方根

2.取近似值函数

1)CEILING

ceiling(3.2) --  4

2)FLOOR

floor(3.2)--  3

3)ROUND (索引中ROUND 函数T-SQL)

print round(345.987,0)-- 346.000

0是指保留小数点后几位.

print round(345.876,-1)-- 350.000

-1是指四舍五入到十位

print round(345.876,-2)-- 300.000

-2是指四舍五入到百位

3.符号函数

ABS  --  绝对值  可用于两列值相减不管列值是正数还是负数都不受影响.

4.其它函数

RAND  -- 0至1之间的随机数(以时间做为种子),永远不等于1.

5.字符转换函数

1)LOWER -- 全部转换为小写.

2)UPPER -- 全部转换为大写.

3)STR  -- 将数值转换为字符串

select '平均分是:'+str(AVG(DEGREE)) from score -- 平均分是:80

或用CAST……as 数据类型:

select '平均分是:'+CAST(AVG(degree) as varchar(30)) from score  --  平均分是:80.250000

6.去空格函数

1)LTRIM -- 压缩左边的空格

2)RTRIM -- 压缩右边的空格

select '平均分是:'+rtrim(ltrim(str(AVG(DEGREE)))) from score -- 既压缩左边又压缩右边的空格,两函数总是一里一外同时使用.

7.取子串函数

1)LEFT  -- 自左边开始截取

2)RIGHT  --自右边开始截取

3)SUBSTRING  -- 任意位置截取n个

select left(title,10)+'xxx' + RIGHT(title,2) from news -- xxx可更换为想显示的字符或值.

select '....'+SUBSTRING(title,5,4)+'......' from news --在title列中自第5个字开始截取4个字.

8.字符串操作函数

1)CHARINDEX --子串的开始位置

2)REVERSE  -- 反转

3)REPLACE -- 替换

select * from news where CHARINDEX('中国',title)>0 --  CHARINDEX(替换值,列名)

原文地址:https://www.cnblogs.com/DORCASQING/p/3963632.html