sql Server 常用函数

来源:互联网 发布:js outerhtml 编辑:程序博客网 时间:2024/06/07 05:17

Sql的常用函数

水晶

 

select replicate('a1',3)--a1的值重复三次

 

--结果为:a1a1a1

 

select replace('12345','2','3')

 

select len('222')

 

--计算字符的个数结果为

 

 select datalength('222')    --3

select datalength('22')   --4

--计算字节数,结果为

 

 

 

select substring('abcde',2,3)

 

-- 格式:substring(str,start,length)

 

 

select left('abcde',2)

 

--从最左边开始,获取个字符结果:ab

 

 

select right('abcde',2)

 

--从右边开始获取个字符结果:de

 

 

select Ltrim('       abcde')

 

if 'abcde'=Ltrim(' abcde')

print 's'

 

--删除起始空格

 

 

select Rtrim(abcde ')

 

--删除字符串尾随空格

 

 

select lower('AcD')

 

--将大写转化为小写

 

 

select upper('abc')

 

-- 将小写转化为大写结果:ACD

 

 

select row_number() over(partitionby用户IDorderby按钮名称)as分组排序,*fromtableName

--分组排序

 

---获取当前时间

 

select getdate()

--result:2009-12-2716:11:10.030

 

 -- year(date),month(date),day(date)

 

select year(getdate()),month(getdate()),day(getdate())

 

-- 结果:   2009       12              27

 

 

--datepart(depart,date) depart值可能为:yy年份,qqq季度,mmm为月,dyy为此日期是本年的第几天

 

-- ddd日数wkww此日期是本年的第几周,dw:此日期是本周的第几天(:星期天,:星期一。。。:星期五:星期六)

 

-- hh:小时min:分钟sss:秒ms:毫秒

 

select datepart(yy,getdate()),datepart(dw,getdate())

 

 -- datepart功能类似,不过datename返回值为字符串,而前者返回为数字

 

select datename(yy,getdate());

 

 

 

--dateadddatpartnumberdate)作用:某个时间加上特定的单位时间后,所得的时间是什么

 

select dateadd(dd,60,getdate())--将当前时间加天后的日期

 

select dateadd(yy,1,getdate())--将当前时间加上一年后的日期

 

 

 

--DateDiff(datepart,startdate,enddate)计算两日期的之间的差距

 

select datediff(hh,'2009/12/22 15:00:00','2009/12/26 12:00:00')--计算两个时间相差多少小时

 

 

---数据转换函数cast(expression as data_type) convert(data_type,expression)

 

select 'now the time is:'+cast(getdate()asvarchar(25))--now the time is:Dec 272009 4:35PM

 

select 'now the time is:'+convert(varchar(25),getdate())

 

 

 

--无参函数:以@@开个头,没有参数,所以不用小括号()如:@@rowcount就是无参函数

 

select @@Rowcount--返回最近一次执行的表达式影响了多少条数据记录

select top 0*fromdbo.订单

if @@Rowcount=0

    select '没有查到结果'

 

 

select @@error --返回最近一次执行错误的transact—sql表达式的错误代码当值为时,表示没错误

 

 

update tableName

set 部门编号='101' 

where 用户名='zhaom'

if @@error<>0

    select '编辑失败,请重新编辑'

 

 

select *from#student

pivot(sum(result)forstdsubjectin(语文,化学,数学,物理))asp;

 

 

select @@fetch_status -- 返回最近一次针对cursor所执行的fetch命令的状态

--返回针对连接当前打开的任何游标发出的上一条游标FETCH语句的状态。

 -- 0成功 1失败 2提取的行不存在

 

select @@servername --结果:USER-PC 返回执行sql server的本地服务器计算机的名称

 

select @@servicename--结果:MSSQLSERVER返回microsoft sql server的操作系统的名称

 

select @@max_connections -- 返回sqlserver最多允许多少个用户同时联机结果为:

 

-- 实际允许的用户连接数还依赖于所安装的SQL Server的版本以及应用程序和硬件的限制。

 

 

 

--控制流语言begin end

 

-- 循环while

 

-- break continue子句

 

-- set 子句用来赋值如set @aa='2'

 

--条件语句if else

 

if((selectmax(number)fromtb_grade)<100)

 

begin

 

 select * from tb_grade

 

end

 

else

 

 begin

 

  print('it doesn''t have the data');

 

 end

 

 

--- case函数

 

select casenumber

 

       when 1 then  'number1'

 

       when 2 then  'numer2'

 

       end

 

from tb_grade

 

--结果为:

 

--number1

--numer2

--NULL

--NULL

--NULL

 

--goto表达式goto label_name

 

-- waitfor 表达式两种形式:waitfor delay延迟时间、waitfor time指定时间

 

select getdate()

waitfor delay '00:00:05'--延迟秒,然后再执行下面的语句

select getdate()

 

select *fromtb_grade

  

waitfor time '23:30'--直到晚上点半以后才执行后面语句

 

 

原创粉丝点击