代码改变世界

随笔档案-2010年07月

重温SQL——行转列,列转行

2010-07-28 08:40 by 潇湘隐者, 213153 阅读, 收藏, 编辑
摘要: 行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现。用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的SELECT...CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。 我们首先先通过一个老生常谈的例子,学生成绩表(下面简化了些)来形象了解下行转列CREATE TABLE [StudentScores]( [UserName] NVARCHAR(... 阅读全文

DATEDIFF函数小问题

2010-07-27 08:20 by 潇湘隐者, 1718 阅读, 收藏, 编辑
摘要: DATEDIFF函数语法如下DATEDIFF( datepart , startdate , enddate ),返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。下面来说说我碰到的这个问题。用户表里user里面有个字段Create_Time记录用户注册日期,Last_Login_Time 记录用户最后登录的时间,要统计注册用户在注册... 阅读全文

动态SQL应用小列子

2010-07-21 11:40 by 潇湘隐者, 1035 阅读, 收藏, 编辑
摘要: 呵呵,几乎成标题党了,今天要写个脚本查询7天内所有有登录玩家的数据,要求按注册日期统计,虽然是个简单的问题,但是关键是用户表有30个,分别是user0, user1......到user29 ,光是把它们UNION ALL起来,我都够郁闷了,你想象下脚本有多长吧,一大堆堆在那儿,光是复制都让你难以忍受。[代码]呵呵,下面是我用动态SQL 改写的,呵呵,简洁多了[代码]这里得提提CHAR(10)这个... 阅读全文

SQL性能调优实践——SELECT COUNT

2010-07-16 10:34 by 潇湘隐者, 29725 阅读, 收藏, 编辑
摘要: 最近想深入学习SQL,在网上搜索到一些SQL 优化的资料要么是张冠李戴,Oracle 优化的资料硬是弄成啦MS SQL 优化的资料,而且被很多人转载,收藏,有些要么有些含糊不清,好像是那么回事,也没经过验证,实践出真知!下面是我对SELECT COUNT(*), SELECT COUNT(1),SELECT COUNT (0), SELECT COUNT(Field)等孰优孰劣的测试结果,如果测试... 阅读全文

MS SQL开发命名规则

2010-07-13 17:25 by 潇湘隐者, 2316 阅读, 收藏, 编辑
摘要: 下面的SQL开发命名规则是我自己开发时总结、整理出来的,以后的开发过程中将不断完善、修改。也希望各位网友指点、批判。 纲领: SQL 语句关键字全部大写, 命名规则建议使用Pascal Case 或 每个单词使用下划线_隔开,不建议全部使用小写。尽量少使用特殊字符比如数字、空格等 使用英文或英文缩写,不建议使用拼音。尽量见名知意。 1: 数据库名命... 阅读全文
点击右上角即可分享
微信分享提示