SQL SERVER
庄晓贤
这个作者很懒,什么都没留下…
展开
-
date日期函数
select GETDATE()--DATEADD()参数1,指定的日期部分,参数2,整数值,参数3select DATEADD(dd,-1,GETDATE())select DATEADD(MM,1.6,GETDATE())--datediff 求两个指定日期之间的差select DATEDIFF(YY,'2008-8-8',GETDATE())--DATENAME返回的原创 2016-12-09 14:43:00 · 313 阅读 · 0 评论 -
sql语法请教,这一行某列的数是上一行该列,经过计算后得出来的数,语法怎么写
做资金日报表就像上面的图 下面这行的昨日余额列等于上面这列加减对应的收入和支出列,或是取自上一行今日余额列,请问这种方式应该怎么写--测试数据if not object_id(N'Tempdb..#T') is null drop table #TGoCreate table #T([time] Date,[余额] int,[收入] int,[支出] int)Insert #原创 2017-07-05 17:07:34 · 1267 阅读 · 0 评论 -
SQL计算两个日期之间的工作天数(除过周六日的天数)
计算两个日期之前的工作天数,可通过编写如下函数实现: createFUNCTION [dbo].[f_workday]( @dt_begin datetime, --计算的开始日期 @dt_end datetime --计算的结束日期 )RETURNS int AS BEGIN DECLARE @i int, @j int,@s datetime转载 2017-07-05 15:48:20 · 3031 阅读 · 0 评论 -
row_number() over(partition by a order by b desc) 用法
Row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.原创 2017-07-12 15:46:17 · 797 阅读 · 0 评论 -
sql单独获取时间的年月日部分
方法一:select year(getdate()),month(getdate()),DAY(GETDATE())year('2004-2-12') --取年month('2004-2-12') --取月DAY(GETDATE()) --取日方法二:SELECT DATEPART(m, getdate()), DATEPART(d, getdate())原创 2017-02-03 11:33:46 · 5350 阅读 · 0 评论 -
如何获取最后一条数据
条件:以ID为例,获取最后一个id的数据 where username='admin' 可不写,写了就是username='admin' 的最后一条,不写就是所有数据里的最后一条where id=(select top 1 id from abc where username='admin' order by id desc)原创 2017-02-15 08:40:33 · 1555 阅读 · 0 评论 -
sql中获取表的列名
方法一:select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name=‘你的表名') 方法二:select 列名=name from syscolumns where id=object_id(N'你的表名'')原创 2016-12-30 17:04:44 · 4476 阅读 · 0 评论 -
在SQL Server中,关于with as使用介绍
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分原创 2016-12-19 14:33:54 · 759 阅读 · 0 评论 -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 I原创 2016-12-19 14:00:21 · 258 阅读 · 0 评论 -
sql中详解round(),floor(),ceiling()函数的用法和区别?
sql中详解round(),floor(),ceiling()函数的用法和区别?round() 遵循四舍五入把原值转化为指定小数位数,如:round(1.45,0) = 1;round(1.55,0)=2floor()向下舍入为指定小数位数 如:floor(1.45,0)= 1;floor(1.55,0) = 1ceiling()向上舍入为指转载 2016-12-19 13:46:41 · 30124 阅读 · 0 评论 -
期列转行做表头带星期的和求和的
示例图!--测试数据if not object_id(N'Tempdb..#T') is null drop table #TGoCreate table #T([name] nvarchar(22),[date] Date,[value] int)Insert #Tselect N'吉斌','2017-07-01',10 union allselect N'吉斌','2原创 2017-07-07 15:02:31 · 767 阅读 · 0 评论