发布时间:2016-10-14责任编辑:朱明 浏览:1367
1. 根据条件取出每组的前N条数据
select * from
(
select *, ROW_NUMBER() over(partition by SectionId order by TransactionDate desc) as rowNum
from SectionTransactionLog
) ranked
where ranked.rowNum <= 2
order by ranked.SectionId, ranked.TransactionDate desc
ROW_NUMBER() over(partition by SectionId order by TransactionDate desc)完成了分组、排序、取行号的整个过程
2. Stuff自定义函数
作用:删除指定长度的字符,并在指定的起点处插入另一组字符。
语法:STUFF ( character_expression , start , length ,character_expression )
举例:
数据表:sys_module(c_code,c_name)
有记录:01,0101,010101,010102
执行以下SQL后,记录变为:02,0201,020101,020102
update sys_module set c_code=stuff(c_code,1,2,’02’) from sys_module
3. With…as 子查询语法
with 别名 as ( select 语句) select * from 别名
4. Sa账号被锁定的问题
在使用sql2005的sa登录时报错如下图:显示< sql server 2005 属性IsLocked不可用于登录"[sa]"……>
经验证,可以用一下方法进行解决:
用WINDOWS账户登录查询分析器,输入一下语句并执行:
ALTER LOGIN sa ENABLE ;
ALTER LOGIN sa WITH PASSWORD = '<password>' unlock, check_policy = off, check_expiration = off ;
GO完成后,重新启动SQL SERVER服务,即可正常使用sa账户了
敬业工作室 供稿