-
SQL中Group分组获取TopN方法实现可首选row_number
有产品表,包含id,name,city,addtime四个字段,因报表需要按城市分组,统计每个城市的最新10个产品,便向该表中插入了100万数据,做了如下系列测试:复制代码代码如下:CREATETABLE[dbo].[products]([id][int]IDENTITY(1,1)NOTNULL,[name][nvarchar](50)NULL,[addtime][datetime]NULL,[city][nvarchar](10)NULL,CONSTRAINT[PK_products]PRIMARYKEYCLUSTERED([id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]1、采用row_number方法,执行5次,平均下来8秒左右,速度最快。复制代码代码如下:selectno,id,name,cityfrom(selectno=row_number()over(pa...
数据库操作教程 2022-09-23 16:47:47 -
sql使用cast进行数据类型转换示例
@num=1;把num类型转成nvarchar类型cast(@numasnvarchar(10))@str='123';把str转换成int类型cast(@strasint)...
数据库操作教程 2022-09-23 16:47:02 -
获取MSSQL表结构中字段的备注、主键等信息的sql
1、MSSQL2000复制代码代码如下:SELECT表名=casewhena.colorder=1thend...
数据库操作教程 2022-09-23 16:46:40 -
SQL进行排序、分组、统计的10个新技巧分享
1.使用排序使数据有序通常,你的所有数据真正需要的仅仅是按某种顺序排列。SQL的ORDERBY语句可以以字母或数字顺序组织数据...
数据库操作教程 2022-09-23 16:46:29 -
sqlserver数据库获取数据库信息
MSSQLSERVER获取当前数据库文件等信息,适用于多个版本:复制代码代码如下:SELECTdbf.file_idASFileID ,dbf...
数据库操作教程 2022-09-23 16:46:00 -
获取SQLServer数据库元数据的几种方法
元数据简介元数据(metadata)最常见的定义为“有关数据的结构数据”,或者再简单一点就是“关于数据的信息”,日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统(DBMS)中,元数据描述了数据的结构和意义...
数据库操作教程 2022-09-23 16:44:52 -
sqlserver如何利用开窗函数over()进行分组统计
这是一道常见的面试题,在实际项目中经常会用到。需求:求出以产品类别为分组,各个分组里价格最高的产品信息...
数据库操作教程 2022-09-23 16:44:47 -
SQL对数据进行按月统计或对数据进行按星期统计的实例代码
对于所有的需求,当你不知道怎么处理的时候,你就先用最简单的方法,或者说的明白一点,用最原始的方法,先实现业务需求再说。 一、对提现队列数据表“ims_checkout_task”进行汇总统计,按月汇总统计每个月的提现总额,提现总次数...
数据库操作教程 2022-09-23 16:43:08 -
sqlserver通过脚本进行数据库压缩全备份的方法【推荐】
问题:生产环境的数据库可能比较大,如果直接进行全备而不压缩的话,备份集就会占用了大量磁盘空间。给备份文件的存放管理带来不便...
数据库操作教程 2022-09-23 16:42:49 -
sqlserver编写通用脚本实现获取一年前日期的方法
问题: 在数据库编程开发中,有时需要获取一年前的日期,以便以此为时间的分界点,查询其前后对应的数据量。例如:1.想查询截止到一年前当天0点之前的数据量,以及一年前当天0点开始到现在的数据量...
数据库操作教程 2022-09-23 16:42:48 -
SQLSERVER日志进行收缩的图文教程
前言最近经历了一次服务器SQLSERVER数据库服务器端事务日志爆满,导致服务器数据库写入不进数据的宕机事件,经过此次事件的发生,奉劝各位同仁一句,如果没有绝对的充足存储空间,数据库事务日志文件千万不要采取完整备份,备份出的数据量是你无法承受的,简单备份就可以了,以下是收缩数据库事务日志的操作,希望可以帮助到大家!数据库事务日志收缩通过图形界面进行操作如下:第一步:右键数据库属性第二步:更改数据库恢复模式,将模式从“完整”改为“简单”第三步:右键数据库,“任务”->“收缩”->“文件” 第四步:收缩数据库日志,选择文件类型“日志”,并将收缩操作内的,“将文件收缩到”最小大小 注意:如若磁盘空间已满,无法进行收缩数据库事务日志文件,可采取先分离出部分暂未使用的数据库,然后将MDF文件及LDF文件进行拷贝到其他空余盘,进行释放磁盘空间,待日志收缩后,再次将分离出的数据库文件进行附加。分离数据库操作,右键单击选择“任务”—>“分离”如下图:总结以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持...
数据库操作教程 2022-09-23 16:42:12 -
SQLServerEVENTDATA()函数来获取DDL触发器信息
复制代码代码如下:--CreatealogtableCREATETABLETriggerLog(LogInfoxml)--CreateadummytabletodeletelateronCREATETABLETableToDelete(IdintPRIMARYKEY)--新建一个新表,作为删除实验表INSERTINTOTableToDeleteVALUES(1)GO--创建一个DropTable的DDLCREATETRIGGERStopTableDropONDATABASEAFTERDROP_TABLEASDECLARE@EventDataASxmlSET@EventData=EVENTDATA()--必须要在rollback之前截获DDL信息ROLLBACKPRINT'DROPTABLEattemptindatabase'+DB_NAME()+'.'INSERTINTOTriggerLogVALUES(@EventData)执行如下删除操作:DROPTABLETableToDelete会触发上面的DDL,从而回滚操作。执行下面的Sql:SELECT*FROMTriggerLog查看刚...
数据库操作教程 2022-09-23 16:41:39