2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL查询统计来讲解一下实际开发中比较常用的行列转换/小计/统计等报表统计相关的常用知识点. 题目如下: 查询sales 和stores表,得出1993年每个store每季度销售数量及小计和总计,查询出的结果如下 其中sales表的数据结构如下: 其中stores表的数据结构如下: 1.1 普通方法(容易…
SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析) 2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL查询统计来讲解一下实际开发中比较常用的行列转换/小计/统计等报表统计相关的常用知识点. 题目如下: 查询sales 和stores表,得出1993年每个store每季度销售数量及小计和总计,查询出的结果…
1.更新tb_card中c_customer字段的值等于tb_customer表中c_no的值 update tb_card set c_customer=ct.c_no from tb_customer ct where tb_card.c_cardno=ct.c_no…
惨痛的教训: 某次在执行delete时,一时疏忽忘记写where条件了, 1.删除tb_mobile_cust_micromsg中的内容,前提是c_customer这个字段的值与#datamod表中c_userno这个字段的值相等. delete from tb_mobile_cust_micromsg where tb_mobile_cust_micromsg.c_customer in (select C_USERNO from #datamod where #datamod.C_USERN…
该文章转载自http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html 别人的总结,很详细. 以下所有例子均Studnet表为例:  计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower('I AM A STUDENT !')…
语法 ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 } 参数 database_name 要修改的数据库的名称. COMPATIBILITY_LEVEL { 80 | 90 | 100 } 要使数据库与之兼容的 SQL Server 版本.该值必须为下列值之一: 80 = SQL Server 2000 90 = SQL Server 2005 100 = SQL Server 2008 备注 对于所…
转自:http://blog.163.com/mig3719@126/blog/static/285720652010950102575/ 9. DBMS提供的扩展功能 掌握了基本的关系模型原理和DBMS的数据类型,还需要对DBMS提供的扩展功能有所了解,才能充分运用DBMS进行数据库开发. 9.1. 控制流 SQL是说明式语言,但DBMS面对实际开发的需求,通常在SQL方言中都提供了过程式的扩展,包括(以T-SQL为例):1. 变量定义和赋值[code=sql] DECLARE @var <d…
1-- DECODE函数是Oracle PL/SQL是功能强大的函数之一,假设我们想给职员加工资,其标准是:工资在8000元以下的将加20%:工资在8000元以上的加15%,通常的做法是,先选出记录 中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的流控制语句进行判断. 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完…
select into 创建的表属于临时表,判断是否存在的方法 select c_adno,c_con_no into #temp from tb_contract IF OBJECT_ID( 'tempdb..#temp') IS NOT NULLBegin DROP TABLE #tempend…
对于这种需求,我们需要一个主表存储连续的日期,然后使用 left join 即可. declare @Daily table ( 日期 date ) declare @start date = '2014-06-04' while @start <= '2014-06-27' begin insert into @Daily values(@start) , @start) end…