用CASE WHEN实现sqlserver数据库的分类汇总功能
/*用CASE WHEN实现sqlserver数据库的分类汇总功能*/
/*例1:统计个数*/
/*表结构
id cityid major
1 1 A
2 1 B
3 2 B
4 2 A
5 1 A
6 2 B
7 1 C
8 2 C
结果:
cityId A B C
1 2 1 1
2 1 2 1
*/
SELECT cityId,SUM(CASE WHEN major='A' THEN 1 ELSE 0 END) AS 'A',
SUM(CASE WHEN major='B' THEN 1 ELSE 0 END) AS 'B',
SUM(CASE WHEN major='C' THEN 1 ELSE 0 END) AS 'C'
from TestCase1 GROUP BY cityId
/*例1:统计总和数*/
/*表结构
Id cityId catalogId Num
1 1 A 3
2 1 B 5
3 2 A 8
4 2 B 2
5 1 &
相关文档:
SQLServer中有两个扩展存储过程实现Scanf和Printf功能,恰当的使用它们可以在提取和拼接字符串时大幅度简化SQL代码。
1、xp_sscanf,用它可以分解格式相对固定的字符串,这对于厌倦使用一堆substring和charindex的朋友来说不错。比如前几天的一个帖子中提出的如何分解ip地址,相对简练且通用的代码应该是下面这样
------- ......
SQLServer2005分解并导入xml文件 收藏
测试环境SQL2005,windows2003
DECLARE @idoc int;
DECLARE @doc xml;
SELECT @doc=bulkcolumn from OPENROWSET(
BULK 'D: \test.xml',
SINGLE_BLOB) AS x
EXEC sp_xml_preparedocument @Idoc OUTPUT, @doc
......
在sqlserver(应该说在目前所有数据库产品)中创建一个资源如表,视图,存储过程中都要判断与创建的资源是否已经存在
在sqlserver中一般可通过查询sys.objects系统表来得知结果,不过可以有更方便的方法
如下:
if object_id('tb_table') is not null
......
原文转自:http://dev.csdn.net/develop/article/71/71778.shtm
大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server要进行表格扫描读取表中的每一个记录才能找到索要的数据。索引可以分为簇索引和非簇索引,簇索引通过重排表中的数据来提高数据的访问速度,而非簇索引则通过维护表中的数 ......