Sql常见问题总结二(Sql语句怎么样查询IP,游标去重复,各种函数使用,各种取时间格式,字符串精确排序,超时锁问题)
2011-12-31 11:22
1051 查看
阅读全文:http://www.sufeinet.com/forum.php?mod=viewthread&tid=401
导读部分
------------------------------------------------------------------------------------------------------------
SQL Server 2005 学习笔记系列文章
http://www.sufeinet.com/forum.php?mod=viewthread&tid=26
这篇文章是上篇SQl使用方法总结 的延续篇
1.当很多在共用你自己的数据时,时不时的会报这种错误“已超过了锁请求超时时段”
直接把下在面的存储过程 放到你的Master数据库执行一下就可以了
View Code
使用方法
就先到这里吧,虽然不多,但也是大家常 见的问题,希望各位网友也把自己的经验分享一下。
14.删除表中重复数大于N的数据
15.把表中重复数小于N的数据写入到一个新表中去(比较删除的速度快100倍以上)
16.把一个表中某列转成以豆号分隔的字符串
17.怎么取时间中的小时,分钟等值
返回表示指定日期的指定日期部分的整数。语法
DATEPART ( ‘下面备注里面的选项’, date )
参数 datepart 指定要返回的日期部分的参数。有关详细信息,
日期部分 缩写 年份 yy、yyyy
季度 qq、q
月份 mm、m
每年的某一日 dy、y
日期 dd、d
星期 wk、ww
工作日 dw
小时 hh
分钟 mi、n
秒 ss、s
毫秒 ms
date 返回 datetime 值(或可隐式转换为 datetime 值的值)的表达式。date 参数也可以是日期格式的字符串。datetime 数据类型仅用于 1753 年 1 月 1 日之后的日期。 对于之前的日期,将存储为字符数据。在输入 datetime 值时,请始终使用单引号将它们括起来。
如果只指定年份的后两位数字,小于或等于两位截止年份配置选项值的后两位数字的值将与截止年份处于同一世纪中。比此选项值的后两位数字大的值先于截止年份的世纪。例如,如果两位数字的截止年份是 2049(默认值),则“49”将被解释为 2049,而“50”将被解释为 1950。为了避免产生歧义,请使用四位年份。
有关指定日期的详细信息,请参阅数据类型中的 datetime。
返回值 int
导读部分
------------------------------------------------------------------------------------------------------------
SQL Server 2005 学习笔记系列文章
http://www.sufeinet.com/forum.php?mod=viewthread&tid=26
这篇文章是上篇SQl使用方法总结 的延续篇
1.当很多在共用你自己的数据时,时不时的会报这种错误“已超过了锁请求超时时段”
直接把下在面的存储过程 放到你的Master数据库执行一下就可以了
View Code
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER proc [dbo].[p_killspid] @dbname varchar(200) --要关闭进程的数据库名 as declare @sql nvarchar(500) declare @spid nvarchar(20) declare #tb cursor for select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname) open #tb fetch next from #tb into @spid while @@fetch_status=0 begin exec( 'kill '+@spid) fetch next from #tb into @spid end close #tb deallocate #tb
使用方法
exec dbo.p_killspid ‘数据库名称’
就先到这里吧,虽然不多,但也是大家常 见的问题,希望各位网友也把自己的经验分享一下。
14.删除表中重复数大于N的数据
delete from dbo.DomainInFo_FIp_domain_old where D_IP in(select D_IP FROM (select max(D_IP)AS D_IP ,count(D_IP) AS con FROM DomainInFo_FIp_domain_old group by D_IP)as t WHERE con>500000)
15.把表中重复数小于N的数据写入到一个新表中去(比较删除的速度快100倍以上)
insert dbo.DomainInFo_FIp_domain_new select D_Domain,D_IP from dbo.DomainInFo_FIp_domain_old where D_IP in( select D_IP FROM ( select max(D_Domain)as D_Domain, max(D_IP)AS D_IP ,count(D_IP) AS con FROM dbo.DomainInFo_FIp_domain group by D_IP ) as t WHERE con<5000 )
16.把一个表中某列转成以豆号分隔的字符串
declare @column_name varchar(2000) set @column_name = '' select @column_name = @column_name + convert(varchar,column_name ) +',' from table
17.怎么取时间中的小时,分钟等值
返回表示指定日期的指定日期部分的整数。语法
DATEPART ( ‘下面备注里面的选项’, date )
参数 datepart 指定要返回的日期部分的参数。有关详细信息,
日期部分 缩写 年份 yy、yyyy
季度 qq、q
月份 mm、m
每年的某一日 dy、y
日期 dd、d
星期 wk、ww
工作日 dw
小时 hh
分钟 mi、n
秒 ss、s
毫秒 ms
date 返回 datetime 值(或可隐式转换为 datetime 值的值)的表达式。date 参数也可以是日期格式的字符串。datetime 数据类型仅用于 1753 年 1 月 1 日之后的日期。 对于之前的日期,将存储为字符数据。在输入 datetime 值时,请始终使用单引号将它们括起来。
如果只指定年份的后两位数字,小于或等于两位截止年份配置选项值的后两位数字的值将与截止年份处于同一世纪中。比此选项值的后两位数字大的值先于截止年份的世纪。例如,如果两位数字的截止年份是 2049(默认值),则“49”将被解释为 2049,而“50”将被解释为 1950。为了避免产生歧义,请使用四位年份。
有关指定日期的详细信息,请参阅数据类型中的 datetime。
返回值 int
相关文章推荐
- Sql常见问题总结二(Sql语句怎么样查询IP,游标去重复,各种函数使用,各种取时间格式,字符串精确排序,超时锁问题)
- php使用mysql-timeout包,解决sql语句查询超时问题
- sql语句查询一个表里面无重复并且按照指定字段排序的sql语句
- SQL语句使用时间和日期的函数
- mybatis查询sql:where语句“查询时间字段书写问题”引发的索引失效
- sql语句中 时间数值转换为时间格式函数
- SQL面试常见问题:查询及删除重复记录的方法
- ACCESS与MSSQL比较:SQL语句关于时间格式使用的注意点
- Delphi模糊查询[ POS函数和Like SQL语句 ]使用方法
- Oracle-oracleSQL对单表各种查询操作及函数的使用
- 数据库SQL中对查询结果排序排列序号编号,Oracle分析函数 rank,dense_rank,row_number使用和区别
- 通过elasticsearch-sql使用SQL语句聚合查询Elasticsearch获取各种buckets桶
- 在ORM框架中使用原生sql语句进行聚合查询遇到的问题
- SQL Server Extended Events使用1: 查询运行时间久的SQL语句
- php使用odbc执行复杂函数遇到的问题,sql语句直接在sqlserver数据库中运行有结果,使用php总是为空
- SQL 表中记录查询排序随笔(sql server中order by使用方式小总结)
- C# SQL语句执行时间过长在操作完成之前超时时间已过或服务器未响应问题的解决
- SQL语句查询重复字段并按数量排序
- 使用SQL语句查询表中重复记录并删除
- sql语句 查询表中 每门课都大于80分的学生名称 根据以下三种 学习sql 中其他函数的使用