04 2011 档案
Sql Server2005 Transact-SQL 排名函数 row_number() rank() dense_rank() ntile()
摘要:http://www.cnblogs.com/wenjl520/archive/2008/12/03/1346401.html 阅读全文
posted @ 2011-04-17 19:16 cnby 阅读(275) 评论(0) 推荐(0)
Tsql统计之二(实例详解grouping() case设置合计字段)
摘要:grouping()函数:grouping(字段)=1则对字段进行了合计,grouping(字段)=0则此行没有对字段合计,根据这个特性我们可以控件要显示的统计列表,例子如下:View Code DROPTABLE[product]CREATETABLE[product]([proid][varchar](5)NULL,[in_date][varchar](10)NULL,[qty][int]NULL)INSERT[product]([proid],[in_date],[qty])VALUES('1','2004-1-2',10)INSERT[product]( 阅读全文
posted @ 2011-04-17 13:28 cnby 阅读(937) 评论(0) 推荐(1)
Tsql统计之二(实例详解 之rollup cube)
摘要:例一:数据准备:View Code createtable#t(项目名称varchar(10),项目年度varchar(10),地市varchar(10),申请单位varchar(10),支持金额int)insert#tselect'名称1','2004','省直','1公司',400unionallselect'名称2','2004','省直','2公司',300unionallselect'名称3','2004','石家庄& 阅读全文
posted @ 2011-04-17 03:20 cnby 阅读(728) 评论(0) 推荐(0)
Tsql统计之一(cube,rollup入门)
摘要:sql2005新特性,专为统计而用,直接给个实例吧。准备数据如下:View Code createtablestore(idintidentity(1,1),productidint,storeidchar(1),numint)insertstore(productid,storeid,num)select1,'A',6unionallselect1,'B',7unionallselect2,'A',8unionallselect2,'B',9cube,rollup与group up结合使用,两者的区别简单的就是:CUBE 生成的 阅读全文
posted @ 2011-04-17 01:55 cnby 阅读(603) 评论(0) 推荐(1)
按时间(年,月,季度,周)查询统计
摘要:准备案例数据:--SQLcode--建表createtable#Temp(datedatetime,Dcountint)insertinto#Tempselect'2010-01-01',10unionallselect'2010-01-25',10unionallselect'2010-01-31',15unionallselect'2010-02-25',30unionallselect'2010-02-28',20unionallselect'2011-01-03',20unionallsel 阅读全文
posted @ 2011-04-15 15:05 cnby 阅读(814) 评论(0) 推荐(0)
sql查询试题(一)
摘要:--1。得到当前月的天数select datepart(dd,dateadd(dd,-1, --2011-04-30 00:00:00.000dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-' --2011-04-01 00:00:00.000 +cast(month(getdate()) as varchar)+'-01' as datetime) --2011-05-01 00:00:00.000)))--2.应用case划分 等级 select productid,productName,unitP 阅读全文
posted @ 2011-04-15 04:59 cnby 阅读(617) 评论(0) 推荐(0)
Tsql查询执行顺序(二)
摘要:· T-SQL查询处理这种逻辑处理顺序,是理论上的处理过程,实际情况还会根据查询优化器选择最优的执行计划。还是从FROM阶段讲开。(1)FROM阶段 这个阶段是查询逻辑处理的第一步。想到这里,想起了LINQ表达式不就是从FROM开始的嘛,看来还是挺有道理的。FROM阶段负责表示表或要查询的表。如果指定了表运算符,还需 要按从左到右的顺序,对运算符进行逐个处理。表运算符有4类,JOIN,APPLY,PIVOT,UNPIVOT。每个表运算符都有自己的处理规则。这里挑最常见的JOIN来说。对于联接(join),一般有以下几个个步骤:a.求笛卡尔积,对两张表进行cross join,得出最大 阅读全文
posted @ 2011-04-13 04:04 cnby 阅读(2528) 评论(2) 推荐(3)
T-SQL查询处理执行顺序(一)
摘要:对于T-SQL编程,用得最广泛的,莫过于查询(Querying)。要想写出高质量、高性能的查询语句,必须深入地了解逻辑查询处理。一、逻辑查询处理的各个阶段(5)SELECT DISTINCT TOP(<top_specification>) <select_list>(1)FROM <left_table> <join_type> JOIN <right_table> ON <on_predicate> (2)WHERE <where_predicate>(3)GROUP BY <group_by_spe 阅读全文
posted @ 2011-04-13 04:02 cnby 阅读(3882) 评论(1) 推荐(2)
case基础应用
摘要:USE pubsGOSELECT Category = CASE type WHEN 'popular_comp' THEN 'Popular Computing' WHEN 'mod_cook' THEN 'Modern Cooking' WHEN 'business' THEN 'Business' WHEN 'psychology' THEN 'Psychology' WHEN 'trad_cook' THEN 'Traditional 阅读全文
posted @ 2011-04-12 18:23 cnby 阅读(298) 评论(0) 推荐(0)
交叉表
摘要:先看看交叉表什么样子:“交叉表”对象是一个网格,用来根据指定的条件返回值。数据显示在压缩行和列中。这种格式易于比较数据并辨别其趋势。它由三个元素组成: 行 列 摘要字段 “交叉表”中的行沿水平方向延伸(从一侧到另一侧)。在上面的示例中,“手套”(Gloves) 是一行。“交叉表”中的列沿垂直方向延伸(上下)。在上面的示例中,“美国”(USA) 是一列。汇总字段位于行和列的交叉处。每个交叉处的值代表对既满足行条件又满足列条件的记录的汇总(求和、计数等)。在上面的示例中,“手套”和“美国”交叉处的值是四,这是在美国销售的手套的数量。 下面实现一个例子:有一个表:BHGZLBJE---------- 阅读全文
posted @ 2011-04-12 17:50 cnby 阅读(2949) 评论(0) 推荐(0)
多表连接查询(内,外,交叉连接)
摘要:连接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征.select 表1.字段名1,表2.字段名2,... from 表1,表2where 连接条件SQL-92标准所定义的FROM子句的连接语法格式为: FROM 表名 join_type 表名 [ON (连接条件)]连接操作中的ON (连接条件) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。 连接查询分类:1.自连接查询,对同一个表进行连接操作(可以理解为两个不同表的内连接,有时可与嵌套查询等价)2.内连接查询,<又分为:自然连接、等值连接、不等值连接三种>3.外连接查询 阅读全文
posted @ 2011-04-12 02:46 cnby 阅读(43352) 评论(3) 推荐(4)
SQL 约束 (Constraints)
摘要:约束说明如下: create table Persons(id int primary key identity(1,1) , ---主键,自增长 id_p int not null unique CHECK (Id_P>0) --check , --唯一LastName varchar(255) not null , --null FirstName varchar(255),City varchar(255) default 'beijing', --defaultConstraint uc_FullName unique(FirstName,LastName) , 阅读全文
posted @ 2011-04-07 23:36 cnby 阅读(2404) 评论(0) 推荐(0)
SQL SELECT INTO 语句
摘要:SQL SELECT INTO 语句可用于创建表的备份复件。简单说明:select filed1,filed2 --要创建的新列into table1 --创建的新表名from table2 --要复制的表where 1=2 --要复制的数据,如果条件不成功则只复制表结构,没有数据从一个以上的表中选取数据也是可以做到的。下面的例子会创建一个名为 "Persons_Order_Backup" 的新表,其中包含了从 Persons 和 Orders 两个表中取得的信息:SELECT Persons.LastName,Orders.OrderNoINTO Persons_Orde 阅读全文
posted @ 2011-04-07 22:54 cnby 阅读(460) 评论(0) 推荐(0)
Tsql案例: 题库,学生课程成绩相关查询
摘要:1案例描述:从题库(保存了所有考试的题目)中抽出一样数量的题做为新的试卷,要求每次的试题顺序不同,这样也就没法抄了啊。 View Code --建立表createtableQuestions(intQuestionIDint,vchQuestionTextvarchar(512))gocreatetableTestQuestions(intQuestionIDint,vchQuestionTextvarchar(512))GO--插入数据declare@intCounterintdeclare@vchQuestionvarchar(64)setnocountonselect@intCounte 阅读全文
posted @ 2011-04-07 22:43 cnby 阅读(2685) 评论(1) 推荐(0)
Group by与having理解
摘要:注意:select 后的字段,必须要么包含在group by中,要么包含在having 后的聚合函数里。1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要)例如,有如下数据库表:A B 1 abc 1 bcd 1 asdfg如果有如下查询语句(该语句是错误的,原因见前面的原则)select A,B from table group by A 该查询语句的意图是想得到如下结果(当然只是一相情愿) A B abc 1 bcd asdfg 右 阅读全文
posted @ 2011-04-01 17:57 cnby 阅读(247403) 评论(16) 推荐(16)
相关子查询 与非相关子查询
摘要:1:标量子查询(相对于多值子查询):只有标量子查询返回的是单个记录或者不返回,就是有效的子查询。Ex1:select OrderId From Orders where EmployeeId=(select EmployeeId From employees where lastName like N'Davolio')将’Davolio’改为'D%'时,这个时候子查询中返回结果为2行,等号右边此时为多值,查询失败.将’=’改为in谓词.查询才能通过.employees表中无lastname=’jason’,外部查询将返回null.2:非相关子查询(嵌套子查询) 阅读全文
posted @ 2011-04-01 17:10 cnby 阅读(19706) 评论(0) 推荐(0)
SQL数据库表 与excel 数据导入导出
摘要:1:用select语句将数据库数据导出到excel,可以灵活的用sql语句设计你想要的结果集View Code declare@serversysname,@unamesysname,@pwdsysname,@QueryTextvarchar(200),@filenamevarchar(200),@hrint,@SQlServerint,@result_strvarchar(255),@QueryResultsint,@CurrentResultSetint,@objectint,@WorkBooksint,@WorkBookint,@Rangeint,@Columnsint,@Rowsint 阅读全文
posted @ 2011-04-01 14:23 cnby 阅读(1670) 评论(0) 推荐(0)