摘要: sql中索引是否会用到,进而影响查询效率。 带通配符(%)的like语句 1.不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。 2.同样以上面的例子来看这种情况。目前的需求是这样的,要求在职工表中查询名字中包含cliton的人。可以采用如下的查询SQL语句:select*fromemployeewherelast_namelike'%cliton%';这里由于通配符(%)在搜寻词首出现,所以Oracle系统不使用last 阅读全文
posted @ 2013-08-07 16:34 笑看天下 阅读(272) 评论(0) 推荐(0) 编辑
摘要: sql中索引是否会用到,进而影响查询效率。 带通配符(%)的like语句 1.不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。 2.同样以上面的例子来看这种情况。目前的需求是这样的,要求在职工表中查询名字中包含cliton的人。可以采用如下的查询SQL语句:select*fromemployeewherelast_namelike'%cliton%';这里由于通配符(%)在搜寻词首出现,所以Oracle系统不使用last 阅读全文
posted @ 2013-08-07 16:29 笑看天下 阅读(474) 评论(0) 推荐(0) 编辑
摘要: sql server2000中使用convert来取得datetime数据类型样式(全)日期数据格式的处理,两个示例:CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/语句及查询结果:Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT( 阅读全文
posted @ 2013-08-05 15:49 笑看天下 阅读(594) 评论(0) 推荐(0) 编辑
摘要: select num,cast(round(convert(float,isnull((a.Sum_Num-d.Sum_Num),0))/convert(float,c.Sum_Store_Num)*100,1) as varchar(50))+'%' as 報告from FORM做除法运算,分母不为0,round函数保留一位小数。cast函数强制类型转换,转成字符串类型,然后与'%'进行字符串拼接。sql中换行符的使用:SQL本身并不使用换行符,因为换行符就跟空格符和回车符一样都被看作是 “空白”。SQL把所有连续的“空白”符当作一个单个的空 格。declar 阅读全文
posted @ 2013-08-05 09:44 笑看天下 阅读(2582) 评论(0) 推荐(0) 编辑
摘要: fname = ActiveSheet.Name-------获取当前sheet页的名称 Sname = "" & fname & "" start_coll = ActiveCell.Column----------获取选中单元格的所在位置:列 start_roww = ActiveCell.Row----------获取选中单元格的所在位置:行 阅读全文
posted @ 2013-07-22 16:20 笑看天下 阅读(18930) 评论(0) 推荐(0) 编辑
摘要: 字段名:Bran,block,are,store 四个字段中存在值等于0或者不等于0,两种情况。where中如果用if等条件判断会有16中组合,如果采用where中的条件就避免了这个情况。declare @a intdeclare @b intdeclare @c intdeclare @d intset @a=0set @b=0set @c=0set @d=0select * from ABC_Tablewhere (b.Bran =@a or @a=0)and (b.block =@b or @b=0)and (b.are=@c or @c=0)and (a.store =@d or @d 阅读全文
posted @ 2013-07-19 10:29 笑看天下 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 在写sql中去重复等操作,需要用到distinct。在使用distinct的时候要注意,尤其是在有行列转换的时候。要把sql运行出来看看是不是与你想要的结果一样。通过自己试验,distinct有从小到大排序的作用。create table ProvinceName(PID int,PName varchar(20))insert into ProvinceNamevalues(1,'a')insert into ProvinceNamevalues(3,'b')insert into ProvinceNamevalues(5,'h')insert 阅读全文
posted @ 2013-07-09 16:44 笑看天下 阅读(2119) 评论(0) 推荐(0) 编辑
摘要: 在VBA中用于字符串连接的只有“&”和“+”两种运算符。1、“&”是强制性连接,就是不管什么都连接。2、“+”是对字符串进行连接,对数字则进行加法运算。(用“+”号的时候,“+”前后类型要一致) 阅读全文
posted @ 2013-05-28 15:27 笑看天下 阅读(84711) 评论(1) 推荐(1) 编辑
摘要: 1.sql语句中是不区分大小写的,但引号中的的字符除外,包括单双引号.sql中单引号相当是其他语言中的双引号.例如:select * from emp where ename = 'scott'没有结果,select * from emp where ename='SCOTT' 就有结果.双引号用法就怪异一点.双引号和引号中的字符一起被当作一个标识符.比如我们create table table(ename varchar2(5),age int);会有错,因为table是关键字.但我们用双引号把关键字引起来就可以用了.create table "ta 阅读全文
posted @ 2013-05-20 16:52 笑看天下 阅读(1317) 评论(0) 推荐(0) 编辑
摘要: 1.循环中插入数据和删除数据尽量不要放在循环中or同时放在循环中or同一个循环中; 注意sql中引号的用法(sql中引号的特殊用法在另一篇博文中有详细介绍)。例子:改动之后执行时间3分钟多点:truncate table STORE---------------------------------------删除放在while循环的外边执行速度提高。set @a=1set @b=28while @a<=@bbeginset @week=201316---------------------------周别set @ACCT_DT=20130516--------------------日 阅读全文
posted @ 2013-05-20 16:42 笑看天下 阅读(193) 评论(0) 推荐(0) 编辑