SqlServer 常用命令说明

发布时间 : 星期一 文章SqlServer 常用命令说明更新完毕开始阅读

友恒通有限公司

insert #temp values(2,2) insert #temp values(3,2) insert #temp values(4,3)

select sum(bb),sum(all bb),sum(distinct bb) from #temp

7.0000 7.0000 5.0000

3、 avg()

avg(ALL expression)=avg(expression) 对所有的非空的值求平均值 avg(DISTINCT expression) 返回唯一非空值的平均值

create table #temp(aa int) insert #temp values (null) insert #temp values (20) insert #temp values (30) insert #temp values (30)

select avg(aa) from #temp --26 select avg(distinct aa) from #temp --25 4、 max()、min()

二、系统函数

1、@@IDENTITY

@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。

insert into SF_MZCFK(jssjh, hjxh, czyh, lrrq, patid, hzxm, ybdm, zje,zfyje,yhje,zfje)

select @sjh, @hjxh, @czyh, @now, patid, hzxm, @ybdm, @zjecf,@zfyjecf,@yhjecf,@zfje from #brxxk

if @@error<>0 or @@rowcount=0 begin

select \保存收费处方出错!\ return end

select @xhtemp=@@identity

insert into SF_CFMXK(cfxh, cd_idm, gg_idm, dxmdm, ypmc, ypdm, ypdw, dwxs, ykxs, ypfj, ylsj, ypsl, ts, cfts, zfdj, yhdj)

select @xhtemp, idm, gg_idm, dxmdm, ypmc, xxmdm, ypdw, dwxs, ykxs, ypfj, ylsj, fysl, 1, cfts, zfdj, yhdj

from #sfmx where cfxh=@cfxh

第 9 页 共 53 页

友恒通有限公司

if @@error<>0 begin

select \保存收费处方明细出错!\ return end

2、 @@ERROR

Transact-SQL 语句的执行时,如果语句执行成功,则 @@ERROR 设置为 0。若出现一个错误,则返回一条错误信息。@@ERROR 返回此错误信息代码,直到另一条 Transact-SQL 语句被执行。 update SF_MZCFK set jlzt=0, lrrq=(case when @jsrq='' then @now else @jsrq end), czyh=@czyh where jssjh=@sjh if @@error<>0 begin select \更新门诊处方信息出错!\ return end

8、 @@ROWCOUNT

返回受上一语句影响的行数, 直到另一条 Transact-SQL 语句被执行。 任何不返回行的语句将这一变量设置为 0 . Select @pzlx=pzlx

from YY_YBFLK (nolock) where ybdm=@ybdm

if @@rowcount=0 or @@error<>0 begin

select \患者费用类别不正确!\ return end

9、 CAST 和 CONVERT

CAST ( expression AS data_type )

CONVERT (data_type[(length)], expression [, style])

将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。

第 10 页 共 53 页

友恒通有限公司

三、游标函数

@@FETCH_STATUS

@@FETCH_STATUS返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。0表示FETCH 语句成功。

declare @sqlstr varchar(8000), @sqlstr4 varchar(8000), @sqlsum varchar(8000), @sqltitle varchar(8000), @dxmdm ut_kmdm, @dxmmc ut_mc16

declare cs_sfdxm cursor for select id,name from YY_SFDXMK for read only

select @sqlstr='create table #temp(ksdm ut_ksdm not null,ksmc ut_mc32 not null,' select @sqltitle='',@sqlstr4='',@sqlsum=''

open cs_sfdxm

fetch cs_sfdxm into @dxmdm,@dxmmc while @@fetch_status=0 begin select @sqlstr=@sqlstr+'id'+@dxmdm+' numeric(14,2) default 0,' select @sqlstr4=@sqlstr4+'id'+@dxmdm+'+' select @sqltitle=@sqltitle+'id'+@dxmdm+' \ select @sqlsum=@sqlsum+'sum(id'+@dxmdm+'),' fetch cs_sfdxm into @dxmdm,@dxmmc end

close cs_sfdxm

deallocate cs_sfdxm

四、日期时间函数

1、getdate()

返回当前系统日期和时间

select convert(char(30),getdate(),102) select convert(char(30),getdate(),111) select convert(char(30),getdate(),112) select convert(char(30),getdate(),120) select convert(char(30),getdate(),108)

2005.02.28 2005/02/28 20050228 2005-02-28 21:44:36 20:45:23

2、DATEADD ( datepart , number, date )

第 11 页 共 53 页

友恒通有限公司

select dateadd(day,5,'20050110')

2005-01-15 00:00:00.000

3、DATEDIFF ( datepart , startdate , enddate )

select datediff(day,'20050102','20050110')

8

五、数学函数

SELECT ROUND(150.75, 0) SELECT ROUND(150.75, 0, 1) Select Abs(-23.23)

151.00

150.00—最后的1(即非0将截断表达式) 23.23

六、字符串函数

1、SUBSTRING ( expression , start , length)

select substring(sfrq,1,4)+'年'

+substring(sfrq,5,2)+'月' +substring(sfrq,7,2)+'日' from VW_MZBRJSK

where sfrq between '20050101' and '2005010124' and ybjszt=2 and jlzt in (0,1,2)

2、LEFT ( character_expression , integer_expression )

=substring(character_expression ,1, integer_expression )

3、ltrim、rtrim

4、len返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。

select len(hzxm), datalength(rtrim(hzxm)),hzxm from ZY_BRSYK 2 3 3 2

4 6 6 4

吴莹 周长生 蔡丽君 钱慧

5、CHARINDEX ( expression1 , expression2)

返回字符串中指定表达式的起始位置, 如果在 expression2 内没有找到 expression1,则 CHARINDEX 返回 0。

select a.sjh,a.blh,b.ysdm,a.ybdm,a.zje from VW_MZBRJSK a(nolock)

where a.sfrq between @ksrq and @jsrq+'24' and a.ybjszt=2

and exists(select 1 from YY_YBBBK b

第 12 页 共 53 页

联系合同范文客服:xxxxx#qq.com(#替换为@)