SQLServer从入门到精通
1、数据分页 OFFSET:指定在从查询表达式中返回行之前,将跳过的行数。 FETCH:指定在OFFSET子句后,将返回的行数。 OFFSET是页号的同义词,FRTCH则代表每页显示的行数。 select?ProductID,?ProductNumber,?Name?AS?ProductName,?ListPrice from?Production.Product order?by?ProductID offset?0?rows fetch?next?10?rows?only 2、使用变量 声明变量:declare ?@variable ?int 三种赋值方法:可以使用SET关键字,这是最佳选择;也可以在SELECT语句中为变量分配一个值;还可以在声明变量的过程中为其赋值。 declare?@variable?int set?@variable?=?<value> select?@variable?=?<column?or?expression> from?<table?name> declare?@variable?int?=?<value> 3、更改数据库名称 alert?database?test_db motify?name=company 4、查询前三条数据 select?TOP?3?*?from?test_table 5、性别不为男 select?*?from?test_table?where?not?S_sex='男'
6、用户权限 赋予权限 grant?update,delete?on?test_table to?sa?with?grant?option 取消权限 deny?update?on?test_table?to?sa?cascade 7、case语句 select?s_id,s_name,case?s_name ????when??'马华'??then??'班长' ????when??'徐三'??then??'学习委员' ????when????'刘杰'????then????'体育委员' ????else????'无' end as????'职位' from????stu_info 8、延迟10秒 declare?@name?varchar(50); set?@name='admin'; begin waitfor?delay?'00:00:10'; print?@name; end; 9、函数 select?ASCII('s'),ASCII('sql'),ASCII('1'); 输出:????115????115????49 select?char(115),char(49); 输出:????s????1 select?left('football',4);????//right,取右边的四个 输出:????foot select?'('+'?book?'+')','('+LTRIM('?book?')+')';????//删除字符串左边的空格 输出:????( book )(book ) select?STR(3141.55,6,1),STR(123.45,2,2)????//数字转化为字符串 输出:????3141.6** select?REVERSE('abc')????//字符串逆序 输出:????cba SELECT?LEN('no'),LEN('日期'),LEN(12345)????//字符串长度 输出:????2????2????5 SELECT?CHARINDEX('a','banana'),CHARINDEX('a','banana',4),CHARINDEX('na',4)????//指定字符开始位置 输出:????2????4????5 SELECT?LOWER('BEA'),LOWER('Well')????//大写字符转换为小写,UPPER--转换为大写 输出:????bea????well SELECT?REPLACE('xxx.sqlserver2012.com','x','w')????//字符串替换 输出: ? ?www.sqlserver2012.com SELECT?ABS(2),ABS(-3.3),ABS(-33)????//取绝对值 输出:????2????3.3????33 SELECT?PI()????//圆周率 输出:????3.14159265358979 SELECT?SQRT(9),SQRT(40)????//求平方根 输出:????36.32455532033676 SELECT?RAND(),RAND(),RAND()????//产生0-1之间的一个随机数 SELECT?ROUND(1.38,ROUND(1.38,0),ROUND(232.38,-1),-2)????//四舍五入 输出:????1.40?1.00 ????230.00 ????200.00 SELECT?SIGN(-21),SIGN(0),SIGN(21)????//符号函数 输出:????-101 SELECT?CEILING(-3.35),CEILING(3.35)????//向上取整 输出:????-34 SELECT?FLOOR(-3.35),FLOOR(3.35)????//向下取整 输出:????-43 SELECT?POWER(2,2),POWER(2.00,-2)????//幂运算 输出:????40.25 SELECT?EXP(3),EXP(-3),EXP(0)????//已e为底的幂运算 输出:????20.08553692318770.04978706836786391 10、数据类型转换函数 SELECT?CAST('121231'?AS?DATE),CAST(100?AS?CHAR(3)),CONVERT(TIME,'2016-12-13?10:57:00')????//数据转换 输出:????2012-12-31100? ??10:57:00.0000000 11、日期和时间函数 select???getdate()????//获取当前日期 SELECT?GETUTCDATE()????//获取世界标准日期值 select??day('2016-12-13?01:01:01')????//获取天 select??month('2016-12-13?01:01:01')????//获取月 select??year('2016-12-13?01:01:01')????//获取年 select????datename(weekday,'2016-12-13?01:01:01')????//星期几 select????datename(dayofyear,'2016-12-13?01:01:01')????//一年的第几天 增加时间 SELECT?DATEADD(YEAR,1,'2016-12-13?01:01:01'),DATEADD(MONTH,DATEADD(HOUR,'2016-12-13?01:01:01') 输出:2017-12-13 01:01:01.000 2017-02-13 01:01:01.000 2016-12-13 02:01:01.000 12、系统函数 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |