SQL语句学习笔记
1 ---20161107,循环执行sql语句 2 3 declare @i int --定义循环条件变量 4 declare @event_id int 5 set @event_id=6 6 7 --20170310 8 --查询结果为变量赋值 9 declare @bi int 10 declare @ei int 11 select @bi=MIN(id0),@ei=MAX(id0) from MMS_T_D_MEMatStatistics 12 where event_id=@event_id 13 select @bi,@ei 14 15 set @i=@bi 16 while @i<=@ei --设置循环条件 17 begin 18 --执行语句 19 update MMS_T_D_MEMatStatistics 20 21 22 --rand():返回0-1的随机数; 23 --ceil(X):返回 大于等于 X的最小整数; 24 --floor(x)与 ceil()相反,产生小于等于指定值(x)的最大整数 25 26 ---获取1-1000之间的随机数 27 set pro_cost=CEILING(rand()*1000),worker_cost=CEILING(rand()*1000), 28 price=CEILING(rand()*1000),plan_value=CEILING(rand()*1000) 29 where event_id=@event_id and id0=@i 30 31 set @i=@i+1 32 end
1 DECLARE @Result INT 2 DECLARE @Upper INT 3 DECLARE @Lower INT 4 5 SET @Lower = 1 --包括左边的数 6 7 SET @Upper = 11 --不包括右边的数 8 9 --[left,right) 10 11 SELECT @Result = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0) 12 SELECT @Result
1 --20161108 条件判断语句case when。。。 2 select b.task_name,b.scheme as schemeName,d.code_name as exa_flag, 3 (case when e.dis_deal_type in (2,3) then m.code_name else f.code_name end) as status
1 ---20161112 用一个表的字段值去更新另一个表的字段 2 update MMS_T_D_MPMaiRstInfo 3 set dis_pic_path = PMS_T_D_AssetDisease.origin_image 4 FROM MMS_T_D_MPMaiRstInfo, PMS_T_D_AssetDisease 5 WHERE MMS_T_D_MPMaiRstInfo.disease_id = dbo.PMS_T_D_AssetDisease.id0 6 and MMS_T_D_MPMaiRstInfo.mai_stage=0 AND MMS_T_D_MPMaiRstInfo.dis_pic_path = ''
1 --20161220 为查询结果添加自增序号列 2 select row_number()OVER(ORDER BY id0 DESC) as orderId,* from 3 ZY_T_S_ReportTemplate
--20170310 sql 里面if语句的用法:
---20170823 实体表数据复制到临时表 select * into #tempDomain from system_group_t_domain_v_0 ---20170823 临时表数据插入到实体表 insert into system_group_t_domain_v_0 select * from #tempDomain
---20171116 查询单表表结构信息 select * from information_schema.columns where table_name='PMS_T_D_RoadAssetDisease' and COLUMN_NAME='degree_type'
---20171205 查询数据库表的行数量 SELECT a.name,b.rows FROM sysobjects a INNER JOIN sysindexes b ON a.id=b.id WHERE b.indid IN(0,1) AND a.Type='u' ORDER BY b.rows desc
----20180315根据in的内容顺序排序 select * from Bridge where bridge_name in ('笔架桥' ,'大坝上石拱桥' ,'枫香2号桥' ,'枫香大桥' ) ORDER BY CHARINDEX(bridge_name,'笔架桥 ,大坝上石拱桥 ,枫香2号桥 ,枫香大桥')