解读4个编写SQL语句需要注意的常识_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:谈值得收藏的SQL时间函数
--日期转换参数 select CONVERT(varchar, getdate(), 120 )2004-09-12 11:06:08 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')20040912110608 select CONVERT(varchar(12) , getdate(), 111 )2004/09/12 selec

1.尽量不要对列名进行函数处理。而是针对后面的值进行处理
例如where col1 = -5的效率比where -col1=5的效率要高
因为后面的条件对列值进行了计算。这样的条件下优化器无法使用索引
而是要针对所有值进行计算之后才能再比较

2.尽量使用和数剧列一样的值进行操作
如果col1是数值型
那么例如where col1 = 2和where col1= ‘2′
则前者效率更高
因为比较字符和数值型的时候
引擎需要把两者都转化成双精度然后进行比较

3.减少函数的使用
例如where col1 >= ‘2009-10-26′ and col1 <= ‘2009-10-27′
和where datediff(day,col1,getdate())=0
后者因为用到函数处理。所以col1上的索引又无法使用了

4.尽量不要用OR
一般对于OR的条件
优化器一般会使用全表扫描

分享:怎样从多个位置截取字符串的SQL语句
知:字段A=’F:\photo\WinterLeaves.jpg’ 要求:分段截取每段字符[字段A不能为TEXT类型,否则报错] 解决方法: ---截取字符串A的第一个\左边的字符串 selectleft(A,charindex(’/’,A)-1) 输出结果:F: ---截取\中间的字符串 selectleft(stuff(A,1,charindex(’/

来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2010-02-01
相关Mssql数据库教程