sql
文章平均质量分 52
silvanus
这个作者很懒,什么都没留下…
展开
-
将一个以逗号分隔的字符串拆分单个记录,并生成插入sql语句
DECLARE @Str nvarchar(1000);DECLARE @Index int;DECLARE @Left nvarchar;SELECT @Str = A,B,C;WHILE CHARINDEX(,,@Str) > 0 BEGIN SELECT @Index = CHARINDEX(,,@Str); SELECT @Left = LEFT(@Str,@Index转载 2007-10-11 17:48:00 · 2662 阅读 · 0 评论 -
执行动态SQL,并返回一个值
declare @recordCount intdeclare @sql nvarchar(max)set @sql = 'select @count = count(*) from table'exec sp_executesql @sql,N'@count int out',@recordCount outselect @recordCount原创 2012-08-06 16:17:38 · 751 阅读 · 0 评论 -
SQL 中的正则 查询
语法格式:PATINDEX ( '%pattern%' , expression ) 返回pattern字符串在表达式expression里第一次出现的位置,起始值从1开始算。pattern字符串在expression表达式里没找就返回0,对所有有效的文本和字符串就是有效的数据类型。描述一下此函数的具体用法:1. PATINDEX ( '%p转载 2012-08-02 17:08:42 · 5352 阅读 · 0 评论 -
SQLServer找出执行慢的SQL语句
SELECT(total_elapsed_time / execution_count)/1000 N'平均时间ms',total_elapsed_time/1000 N'总花费时间ms',total_worker_time/1000 N'所用的CPU总时间ms',total_physical_reads N'物理读取总次数',total_logical_reads/execution_转载 2012-12-24 11:42:44 · 8107 阅读 · 0 评论 -
找出SQL中的死锁进程
select a.resource_type, case a.resource_typewhen 'RID' then '行锁(表没有聚集索引表)'when 'KEY' then '行锁(表有聚集索引表)'when 'Page' then '数据页锁'when 'EXTEnt' then '连续8个页面集合锁'when 'Hobt' then '堆或平衡树锁(表没有聚集索引转载 2012-12-26 14:51:16 · 694 阅读 · 0 评论 -
sp_who_lock
use mastergocreate procedure sp_who_lockasbegindeclare @spid int,@bl int, @intTransactionCountOnEntry int, @intRowcount int, @intCountProperties int, @intCounter转载 2012-12-27 16:09:45 · 1608 阅读 · 0 评论 -
百万插入
/*****************************一个方法******************************/ ---判断Nums 表是否存在,存在即将其删除 IF OBJECT_ID('dbo.Nums') IS NOT NULL DROP TABLE dbo.Nums; GO ---重新创建表 CREATE TABLE d转载 2013-01-11 15:42:26 · 379 阅读 · 0 评论 -
一个连续数字
--100次递归with cte1 as(select 1 i),cte3 as(select i from cte1 union all select i+1 i from cte3 where i )select * from cte3--spt_value,只到2047select number+1 from master..spt原创 2013-01-11 15:46:45 · 336 阅读 · 0 评论 -
猴子
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个,以后每天早上都吃了前一天剩下的一半零一个,到第十天早上,再想吃时,见只剩下一个桃子了,求第一天一个摘了多少个桃子if Exists(select * from sysobjects where id = object_id('calpeaches'))begindrop fu翻译 2013-01-11 15:48:05 · 390 阅读 · 0 评论 -
兔子
if Exists(select * from sysobjects where id = object_id('calrabbit'))begindrop function dbo.calrabbit endgocreate function dbo.calrabbit(@i int,@month int)returns intasbeginif (@i翻译 2013-01-11 15:48:33 · 269 阅读 · 0 评论 -
2000 动态 行列转换
if object_id('tb')is not null drop table tbgocreate table tb(姓名 varchar(10),课程 varchar(10),分数 int)insert into tb values('张三','语文',74)insert into tb values('张三','数学',83)insert into tb values(转载 2013-01-11 15:53:42 · 412 阅读 · 0 评论 -
一列转一行
/*表tbcol 11aacc想要的结果s1,s2,s3 --显示字段名11,aa,cc --数据结果*//***************临时表解决方案****************************************************************************************/-- 创建数据if Exists(selec原创 2013-01-11 15:39:56 · 397 阅读 · 0 评论 -
【转】SQL SERVER 查看SQL语句IO,时间,索引消耗
1.查看SQL语句IO消耗set statistics io on select * from dbo.jx_order where order_time>'2011-04-12 12:49:57.580' set statistics io off 2.查看SQL语句时间消耗set statistics time on转载 2015-02-17 15:03:53 · 665 阅读 · 0 评论 -
mysql 一行转多列
/*drop table tbl_name;create table tbl_name (ID int ,mSize varchar(100));insert into tbl_name values (1,'tiny,small,big');insert into tbl_name values (2,'small,medium');insert into tbl_name原创 2016-02-18 09:40:28 · 3445 阅读 · 0 评论 -
CTE 递归
with cte(id) as(select 1union all select id + 1 from cte where id )select * from cte原创 2017-11-28 13:51:32 · 286 阅读 · 0 评论 -
模糊查询 按字数多少排序
declare @key nvarchar(20)set @key = '打印机 ibm a'declare @return nvarchar(100)declare @sql nvarchar(max)set @sql = ''if charindex(' ',@key) > 0begin while charindex(' ',@key) > 0 begin原创 2012-07-15 00:08:50 · 1941 阅读 · 0 评论 -
MSSQL 行列转换
--普通版行列转换create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int) insert into tb values('张三' , '语文' , 74) insert into tb values('张三' , '数学' , 83) insert into tb values('张三' , '物理' , 93) insert i原创 2012-06-21 18:21:44 · 537 阅读 · 0 评论 -
通用游标写法
declare @basisname varchar (10)set @basisname = 底片格式declare @basissortid int DECLARE mycursor CURSOR local FOR --定义游标 select sortid from tsort where sortid between 87 and 9原创 2007-11-01 12:19:00 · 659 阅读 · 0 评论 -
取一个大类下的所有小类的函数
create function dbo.getalltypeidbytypeid(@typeid int)---传进来一个typeid,列出这个typeid下面的所有的typeid--select dbo.getalltypeidbytypeid(10608)returns varchar(8000)asbegindeclare @result varchar(8000)set @result原创 2007-11-01 12:21:00 · 559 阅读 · 0 评论 -
用函数获得一个类型下所有的数据,并用逗号隔开,显示出来
create table infor(age int,telnum varchar(10))insert into infor values (23,887907)insert into infor values (23,807005)insert into infor values (20,123456)insert into infor values (21,21343)i原创 2007-11-01 12:31:00 · 764 阅读 · 0 评论 -
SQL 中decimal 各位数的详细解释
参考MSND网址:http://msdn2.microsoft.com/zh-cn/library/5a10hy4y.aspx比如,一个deciaml,整数位3,小数位2,那么它的各项值如下:size参数的长度。 precision要将 Value 解析为的小数点左右两侧的总位数。 scale要将 Value 解析为的总小数位数。size = 3+2 = 5scale =原创 2007-11-01 15:00:00 · 1472 阅读 · 0 评论 -
根据一个ID,找出它最上级的ID的函数,适用于有parentid的树形表结构
create function dbo.gettypeid(@a int)--传进来 一个typeid,得到这个typeid的最上级的typeid--select dbo.gettypeid(11609)returns varchar(8000)asbegindeclare @result intdeclare @cal intset set @cal = (select typeparent原创 2007-11-01 12:24:00 · 1469 阅读 · 0 评论 -
sql 2000 中根据一个大类,查出所有小类在一起显示
create table infor(age int,telnum varchar(10))insert into infor values (23,887907)insert into infor values (23,807005)insert into infor values (20,123456)insert into infor values (21,21343)ins原创 2008-12-31 12:58:00 · 1406 阅读 · 0 评论 -
SQL 中的尖括号">"自动转成>,SQL递归简单写法
在写一句SQL的时候,发现有时SQL会自动把> 转成>代码如下:if object_id('t_001') >0 drop table t_001create table t_001 (id int ,val varchar(100),nid int)insert into t_001 select 0,'我',1 union select 1,'爱',2 union原创 2011-12-26 21:11:31 · 7525 阅读 · 2 评论 -
sql 2000 实现partition by rownumber功能
declare @a table(id nvarchar(10),num int)insert into @aselect '000019',1 union allselect '000019',0 union allselect '000019',0 union allselect '000019',0 union allselect '000020',0 union a原创 2012-05-17 16:05:52 · 898 阅读 · 0 评论 -
sql 补全空缺部分
with cte as(select '000019' CardId, cast('2012-5-15 0:00' as datetime) DataData, cast('2012-5-15 7:40' as datetime) DataTime,88 MachAddr union allselect '000019' ,'2012-5-15 0:00' ,'2012-5-15 13原创 2012-05-17 14:28:31 · 1350 阅读 · 0 评论 -
今天偶尔看到一题,做了一下
今天偶尔看到一题,网址如下:http://topic.csdn.net/t/20061023/11/5101874.html感觉两位的回答是正确的,但总感觉不是很爽,花了点时间,整理了下with cte as(select 1 mo,'收' me,1 nu union allselect 1,'收',2 union allselect 1,'付',2 uni原创 2012-05-17 23:09:42 · 385 阅读 · 0 评论 -
关于一行转一列
;with cte as(select '1' id , cast('2012-6-18 10:00' as datetime) gpstime union allselect '2',cast('2012-6-18 10:30' as datetime) union allselect '3',cast('2012-6-19 11:40' as datetime) union all原创 2012-06-18 20:48:19 · 436 阅读 · 0 评论 -
sql 中outer apply 和XML 并用
create table a (id int,tag varchar(100))create table b(id int,description nvarchar(100))goinsert into a select 1,'1,2,3' union allselect 2,'1,3' union allselect 3,'2,3'goinsert into b原创 2012-06-18 20:50:41 · 2195 阅读 · 0 评论 -
SQL Server DbLink
Exec sp_droplinkedsrvlogin LinkServer,Null --若存在先刪除Exec sp_dropserver LinkServerEXEC sp_addlinkedserver@server= 'LinkServer',--被訪問的服務器別名@srvproduct= '',@provider= 'SQLOLEDB',@datasrc= '192.168.0转载 2012-07-04 14:47:39 · 598 阅读 · 0 评论 -
sqlserver 中查看一个库中有多少表是有数据的
declare @table table (rows int,tablename nvarchar(100));declare @sql NVARCHAR(MAX)declare @rows int;insert into @tableselect ROW_NUMBER() over (order by name),name from sysobjects where xtype = 'u'...原创 2018-02-14 14:19:58 · 3520 阅读 · 0 评论