sql学习记录-新闻详情

sql学习记录


发布时间: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]"……>

学习记录1.jpg

经验证,可以用一下方法进行解决:

用WINDOWS账户登录查询分析器,输入一下语句并执行:

ALTER LOGIN sa ENABLE ;

ALTER LOGIN sa WITH PASSWORD = '<password>' unlock, check_policy = off, check_expiration = off ;

GO完成后,重新启动SQL SERVER服务,即可正常使用sa账户了

 

 

敬业工作室   供稿