初识SQL

SQL加判断

select B.FName 员工,FOverDay 加班天数,FAbsenDay 旷工天数,FLateDay 迟到天数,FWithHold 扣款,FSubSidy 补贴
        ,case when A.FLateDay%3=0 then A.FLateDay/3*100 else floor(A.FLateDay/3)*100+20*A.FLateDay%3 end  考勤工资
 from STKD_T_StaffMonAttEntry as A
       join STKD_T_WorkerInfoEntry as B ON (A.FWoker=B.FID)

查询函数值

select FLOOR(23.99)

临时表

select A.FName 员工,B.FName 介绍人,
datediff(month,A.FInDate,getdate()) 在职月份  
into #Temp
from STKD_T_WorkerInfoEntry as A
left JOIN STKD_T_WorkerInfoEntry as B on A.FReferees = B.FID
where datediff(month,A.FInDate,getdate()) = 3

select 介绍人,count(员工)
from #Temp
group BY 介绍人

drop TABLE #Temp

不为空是 is not null

select A.FName,
    CASE WHEN A.FReferees is NOT NULL THEN (CASE WHEN datediff(month,A.FInDate,getdate())=0 THEN A.FReferees ELSE NULL END) ELSE NULL END 到期介绍人
from STKD_T_WorkerInfoEntry as A

判断为空

//如果是null的话
select * from 表名 where 字段名 is null
//如果是空字符的话
select * from 表名 where 字段名=''

触发器判断数据已经存在

CREATE trigger STKD_TR_MacInser
on STKD_T_MacConfig
for insert
as
IF exists (select s.FMacName from STKD_T_MacConfig s where s.FMacName in (select i.FMacName from inserted AS i))
    begin 
            RAISERROR('机台已经存在', 16, 1)
    end;

有效利用like
当string为空的时候就是不过滤

where a like '%'+string+'%'

error:列名 ‘年月1’ 无效
当出现列名无效是,而表确实有该列时,查看是否是临时表未删除重新建立。存储过程临时表不删除不会报错。
利用存储过程插入到表中

create table #tb(a int)
insert into #tb(a) exec 存储过程名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值