
sqlServer
fhjzgsy
性格开朗
展开
-
IN和EXISTS之间的一个区别和公用表表达式(CTE)
1.子查询这里不知道写什么重点,我觉得子查询分2种吧。一种是独立的子查询,和外部查询无关,它只为外部查询执行一次足矣.还有一种是相关的子查询,它是外部查询没执行一行它就跑一次,是动态的.我这里举个例子:--学生表create table #s(sno int,sname varchar(10))--选课表create table #sc(sno int,cno int,score int)--课转载 2009-10-21 11:25:00 · 398 阅读 · 0 评论 -
聚焦索引与非聚焦索引及其查询效率
随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、分析、统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题。转载 2010-01-19 16:38:00 · 241 阅读 · 0 评论 -
Sql server中DateDiff用法
Sql server中DateDiff用法2009-10-07 00:00DATEDIFF 函数 [日期和时间]功能 返回两个日期之间的间隔。语法 DATEDIFF ( date-part, date-expression-1, date-expression-2 )date-part :year | quarter | month | week | day原创 2009-11-27 13:59:00 · 249 阅读 · 0 评论 -
简单的分组查询
表中字段:type,idnum,name,time均为char型 我想查找每一种类型中idnum最大的那条数据,比如type一共分为:red,blue,yellow 查找结果为 red, 该类型最大的idnum对应的idnum,name,time blue, 该类型最大的idnum对应的idnum,name,time yellow,该类型最大的idnum对应的idnum,name,time s原创 2009-12-02 14:42:00 · 260 阅读 · 0 评论 -
Sql Server2005对t-sql的增强之Cross Apply
Cross Apply使表可以和表值函数结果进行join,在下面的示例中建了两个表和一个表值函数,T_b的列a_ids中会存放a表的id用,分割的字符串连接;我们通过cross apply使T_a,T_b表通过splitIDs inner join 连接。请看示例:GO if object_id(T_a,U) is not nulldrop table T_aGOCREATE TA转载 2009-12-02 14:11:00 · 239 阅读 · 0 评论 -
GROUP BY,WHERE,HAVING之间的区别和用法
having子句与where有相似之处但也有区别,都是设定条件的语句。在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行优先级别优先于聚合语句(sum,min,max,avg,count)。简单说来:where子句:select sum(num) as rmb from order where id>10//只有先查询出转载 2009-12-02 14:57:00 · 242 阅读 · 0 评论 -
ORDER BY 多个条件
ORDER子句按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),缺省是升序。ORDER子句通常放在SQL语句的最后。 ORDER子句中定义了多个字段,则按照字段的先后顺序排序。 例: SELECT ProductName,UnitPrice, UnitInStock FROM Products ORDER BY UnitInStock转载 2009-12-03 13:51:00 · 314 阅读 · 0 评论 -
sql的not exists随笔
简单的理解就是 not exists = not in;exists= in 但这只是简单的理解而已,其里面的执行机制和细微处还是有一定的差别! 以下是从网络上摘录下的文章: SQL里的EXISTS与in、not exists与not in 效率比较和使用在 MSSQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经转载 2009-12-05 10:35:00 · 2876 阅读 · 0 评论 -
SQL Server COALESCE函数的创新应用
SQL Server COALESCE函数的创新应用 - Mssql导读:COALESCE()函数可以接受一系列地值,如果列表中所有项都为空(null),那么只使用一个值.然后,它将返回第一个非空值.这一技巧描述了创造性使用SQL Server 中COALESCE()函数地两种方法. 这里有一个简单地例 COALESCE()函数可以接受一系列地值,如果列表中所有项都为空转载 2009-12-05 09:58:00 · 695 阅读 · 0 评论 -
SQL中EXISTS的使用
网上有一些关于EXISTS 说明的例子,但都说的不是很详细.比如对于著名的供货商数据库,查询:找出供应所有零件的供应商的供应商名,对于这个查询,网上一些关于EXISTS的说明文章都不能讲清楚. 我先解释本文所用的数据库例子,供货商 数据库,共3个表. 供货商表 S(S#,SNAME), 货物表 P(P#,PNAME), 供货商-货物表 SP(S#,P#). 字段S#,P#转载 2009-12-05 11:31:00 · 471 阅读 · 0 评论 -
处理表重复记录(查询和删除)
--处理表重复记录(查询和删除)/******************************************************************************************************************************************************1、Num、Name相同的重复值记录,没有大小关系只保留一条2、N转载 2010-02-10 10:33:00 · 243 阅读 · 0 评论 -
随机删除重复记录!
-------------- 随机删除重复记录! ------------------------------------------- Author: Luoyoumou -----------------------------drop table test;--先求出符合条件的记录:create table test(col1 int identity(1,1), col2转载 2010-02-10 10:37:00 · 240 阅读 · 0 评论 -
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表
执行下面SQL 会收到如题的错误.这是为什么呢? 注意红色部分,它属于子查询,再关注出错信息.问题出在order by......select location from (Select * From LOCATION Where WAREHOUSE = NW3_SHANGHAI And PUT_ZONE = NAA And LOCATION_TYPE = NSTO Order B转载 2009-12-18 13:52:00 · 15414 阅读 · 2 评论 -
------------------触发器---------------
关键字: 触发器 SQL触发器实例1定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?比如,这么两个表: Create Table Student(转载 2010-01-10 17:06:00 · 215 阅读 · 0 评论 -
●查询速度慢的原因很多,常见如下几种
●查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8、sp_lock,sp_who,活动的用户查看,原因是转载 2010-05-13 15:50:00 · 263 阅读 · 0 评论 -
拆分一个字符串的方法
【小小问题集锦4--拆分一个字符串的方法】 收藏 /*****拆分一个字符串*********问题描述:@str=fds,bbbf,eee,ddd,fff,hhhfg,dddde 拆分成col------------------------fdsbbbfeeedddfffhhhfgdddde*/---方法:动态declare @str varchar(500),@aaa varchar(转载 2010-05-14 11:21:00 · 477 阅读 · 0 评论 -
T-Sql常用函数
1:replace 函数第一个参数你的字符串,第二个参数你想替换的部分,第三个参数你要替换成什么select replace(lihan,a,b) -----------------------------lihbn(所影响的行数为 1 行)========转载 2010-05-13 15:36:00 · 267 阅读 · 0 评论 -
在数据库中拼接字符串
create table tb(id int, value varchar(10))insert into tb values(1, aa)insert into tb values(1, bb)insert into tb values(2, aaa)insert into tb values(2, bbb)insert into tb values(2, ccc)gocre转载 2010-01-18 16:57:00 · 1257 阅读 · 0 评论 -
group by a,b 分组
select a,b,sum(c) as d from userinfo group by a,b 肯定是按A,B一起分组呀, 1-1-1 1-1-2 1-2-1 统计后就是 1-1---3 1-2---1转载 2010-01-19 09:35:00 · 289 阅读 · 0 评论 -
DATEADD,DATADIFF函数 日期计算
DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期一个月的第一天SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) //函数DATEDIFF(mm,0,getdate())是计算当前日期和“1900-01-01 00:00:00.000”这原创 2009-10-21 15:43:00 · 950 阅读 · 0 评论 -
row_number()over简单的一个例子
DECLARE @t TABLE (id INT,tac VARCHAR(2),tbc VARCHAR(2))INSERT INTO @tSELECT 001,a,b UNION ALLSELECT 001,c,m UNION ALLSELECT 001,a,c UNION ALLSELECT 002,q,v UNION ALLSELECT 002,q,v原创 2009-10-22 10:31:00 · 404 阅读 · 0 评论 -
查每个分组前N条记录
--> 生成测试数据: #TIF OBJECT_ID(tempdb.dbo.#T) IS NOT NULL DROP TABLE #TCREATE TABLE #T (ID VARCHAR(3),GID INT,Author VARCHAR(29),Title VARCHAR(39),Date DATETIME)INSERT INTO #TSELECT 001,1,邹建,深入浅出S转载 2009-10-21 14:48:00 · 257 阅读 · 0 评论 -
拆分字符串
有字符串 a;b1;c23;d34 ,其中;為分割符。 現要實現功能:根據傳入的數值來刪除對應的項,如1則結果為 b1;c23;d34,如2則結果為a;c23;d34,如3則結果為a;b1;d34,如4則結果為a;b1;c23。 if object_id(f_str)is not null drop function f_strgocreate function f_str(@s v转载 2009-10-21 16:46:00 · 359 阅读 · 0 评论 -
case when then的用法
sql语句判断方法之一 Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN 1 THEN 男 WHEN 2 THEN 女 ELSE 其他 END --Case搜索函数 CASE WHEN sex = 1 THEN 男 WHEN sex = 2 THEN 女 ELSE 其他 END这两种方式,可原创 2009-10-22 10:03:00 · 12824 阅读 · 1 评论 -
Sql server中 DateAdd、DateDiff用法
这个函数DateAdd(month,2,WriteTime): 日期部分缩写 Year yy, yyyy quarter qq, q Month mm, m dayofyear dy, y Day dd, d Week wk, ww Hour hh minute mi, n second ss, s millisecond ms 这个表足够说明问题了吧,从year到millisecond都转载 2009-10-21 16:01:00 · 325 阅读 · 0 评论 -
SQL一个存储过程调用另一个存储过程 获得返回值问题
第一种方法: 使用output参数USE AdventureWorks;GOIF OBJECT_ID ( Production.usp_GetList, P ) IS NOT NULL DROP PROCEDURE Production.usp_GetList;GOCREATE PROCEDURE Production.usp_GetList @product varchar(转载 2009-10-21 16:06:00 · 245 阅读 · 0 评论 -
SQLserver中用convert函数转换日期格式
select getdate()结果:2003-12-28 16:52:00.107select convert(char(8),getdate(),112) 结果:20031228select convert(char(8),getdate(),108)结果:16:52:00select convert(char(8),getdate(),112)原创 2009-10-22 10:59:00 · 254 阅读 · 0 评论 -
一定时间迟到的总时间 考勤
DECLARE @a TABLE(ID INT,DEPTCODE VARCHAR(20),[DATETIME] DATETIME)INSERT @a SELECT 32,财务部,2009-10-17 08:54:02.000 UNION ALL SELECT 32,财务部,2009-10-17 12:02:10.000 UNION ALL SELECT 32,财务部,2009原创 2009-10-22 14:05:00 · 241 阅读 · 0 评论 -
sql server charindex和patindex详解
假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来搜索文字列和字符串。我将告诉你这两个函数是如何运转的,解释他们的区别。同时提供一些例子,通过这些例子,你可以可以考虑使用这两个函数来解决很多不同的字符搜索的问题。 CHARINDEX和PATINDEX函数常常用来在一段字符中搜索字符或者字符转载 2009-10-23 10:35:00 · 362 阅读 · 0 评论 -
for XML path('')实例
IF OBJECT_ID(A) IS NOT NULL DROP TABLE AIF OBJECT_ID(B) IS NOT NULL DROP TABLE BgoCREATE TABLE A(AID INT,[NAME] VARCHAR(50))INSERT INTO ASELECT 1 ,Tom UNION ALLSELECT 2 ,Jim CREATE TABLE转载 2009-10-24 11:29:00 · 841 阅读 · 0 评论 -
一个sql简单函数实现拼接字符串
--测试数据create table table1(AID int,NAME nvarchar(20))create table table2 (BID int,NUMBER nvarchar(20))insert into table1 select 1,Tom union allselect 2,Jiminsert into table2 select 1,20 union allse原创 2009-10-24 13:49:00 · 495 阅读 · 0 评论 -
存储过程分页
/*--用存儲過程實現的分頁程式 顯示指定表、視圖、查詢結果的第X頁 對於表中主鍵或標識列的情況,直接從原表取數查詢,其他情況使用臨時表的方法 如果視圖或查詢結果中有主鍵,不推薦此方法--鄒建 2003.09(引用請保留此資訊)--*//**//*--調用示例select top 20 * from product_schedule where brand=oemexec p_show pr转载 2009-11-06 15:11:00 · 227 阅读 · 0 评论 -
查每个分组前N条记录
---可以参考这个 排序用order by newid()----------------------------------- Author: liangCK 小梁-- Title : 查每个分组前N条记录-- Date : 2008-11-13 17:19:23-----------------------------------> 生成测试数据: #TIF OBJECT_ID(t原创 2009-11-09 14:25:00 · 312 阅读 · 0 评论 -
合并列值 xml path()
合并列值 --*******************************************************************************************表结构,数据如下: id value ----- ------ 1 aa 1 bb 2 aaa 2 bbb 2 ccc 需要得到结果: id values ---转载 2009-11-09 10:42:00 · 297 阅读 · 0 评论 -
Asp.net调用webservice
这是我从别处摘抄的一篇文章,相信大家都很熟悉的,讲的很明白,但是我对其中一点存有疑惑,许久也没有找到答案。调用webservice时可以返回datatable等复杂数据类型,下面例子中也有的,在前台调用时,其实这些数据类型经过了转换器处理。下面的例子中,返回的datatable被一项一项添加到select上去了,其实我看了就是一个Array,在前台不能数据绑定的,这样datatable的意义原创 2009-11-13 16:59:00 · 648 阅读 · 0 评论 -
SQL存储过程实例
sql 存储过程 几个 简单例子<br />关键字: 存储过程 <br />例1:<br />create proc proc_stu<br />@sname varchar(20),<br />@pwd varchar(20)<br />as<br />select * from ren where sname=@sname and pwd=@pwd<br />go<br />查看结果:proc_stu 'admin','admin'<br /><br />例2:<br />下面的存储过程实现用户验证的功转载 2010-10-08 17:25:00 · 397 阅读 · 0 评论