SQLserver使用笔记

1、常用日期函数
日期加减
DATEADD常用日期获取:获取上个月第一天和最后一天
SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())-1,0)
SELECT DATEADD(MONTH,DATEDIFF(MONTH,-1,GETDATE())-1,-1)
DATEDIFF(DAY,WLConfirmDate,'2021-03-10') = 0
日期切割
convert(varchar(10),GETDATE(),120)=="2022-01-06"

2、创建视图
create view View_EdsProd
as
 select * from Tab_EdsProd where Mid>1
go
來自 <Sql server中 如何用sql语句创建视图 - 小小邪 - 博客园>

3、排序规则-两张不同排序规则的表联合查询时使用
collate Chinese_Taiwan_Stroke_BIN

4、游标使用实例

DECLARE @Dep01 NVARCHAR(50) --声明变量
DECLARE SampleCrsr1 CURSOR FOr select Dep01 from #dept1 --声明游标SampleCrsr1
OPEN SampleCrsr1--打开游标
FETCH NEXT FROM SampleCrsr1 into @Dep01--使用游标
WHILE (@@FETCH_STATUS<> -1)
BEGIN
INSERT INTO sys_dept VALUES ( '1', '0,1',@Dep01, '1', null, null, null, '0', '0', 'admin',GETDATE(), '', null);
FETCH NEXT FROM SampleCrsr1 into @Dep01--使用游标配合while使用
END
CLOSE SampleCrsr1 --关闭游标    
DEALLOCATE SampleCrsr1 --撤销游标(释放资源 )  
DROP TABLE #dept1 --删除临时表

5、常用语句:DECLARE --声明变量
DISTINCT--去重
清空表数据并重置ID:truncate table #11

6、类型转换:
convert(varchar(10),name)/cast(toatal as int)

7、with as 的用法
來自 <sql语句中with as 的用法_不怂,不弱,不退缩,厚积薄发-CSDN博客_sql的with>

8、sql for xml path用法

9、判断临时表是否存在

if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..##hours') and type='U')
begin 
   drop table ##hours
END

10、exec sp_executesql的用法--可以带参数输出

set @target_output = 0
set @sql = 'select @target_output = isnull(SUM('+@col+'),0)*@single_hours from ##hours where dept=@Dep01'
exec sp_executesql @sql,N'@target_output int out,@Dep01 NVARCHAR(20),@single_hours DECIMAL(10,2) ',@target_output out,@Dep01,@single_hours

11、行变列

set @name =stuff((SELECT DISTINCT ',['+c_date+']' from #middle for xml PATH('')),1,1,'')
set @sql = 'select * into ##33 from #middle PIVOT(max(pro_val) for c_date in ('+@name+') ) t'
EXEC(@sql)


            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值