![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
zhyueh
这个作者很懒,什么都没留下…
展开
-
文本,多位数字,混合排序
<br />有个需求,要导入系统中的班级,进行排序,班级为文本类型,因为有的班级是1,2,3之类,有的是天河班,白云班,如果只是简单地 ORDER BY ClassName,输出的将会是 1,11,12,13,2,3...白云,天河 <br />要解决多位数字的排序,可以使用 ORDER BY ClassName * 1 ,因为这个 × 1会将 ClassName 转换为数字类型,但 白云×1显然是会报错的。 所以目前的解决办法是<br />ORDER BY (CASE WHEN ISNUMERIC(Cla原创 2010-12-01 10:11:00 · 704 阅读 · 0 评论 -
读excel,数字,汉字混合列
<br />有个项目需要导入Excel数据,我一般不使用COM来读,因为可以使用OleDB,用SQL语句,还可以进行简单的过滤。以前一般用OleDB读的时候,只是觉得有个问题,就是Excel中第一行的数据将作为DataTable中的字段名,但这问题其实也不算什么问题。但现在遇到个有点严重的问题,就是在同一列中,如果包含数字和汉字,发现汉字是读不出来的,返回值为NULL,这问题严重吧? 查阅资料发现,原来是Excel的驱动有问题(不知是真是假),解决方法是把Extended Properties 设为'Exc转载 2010-12-01 10:13:00 · 467 阅读 · 0 评论 -
MySQL ,MS SQL Server,类似功能的函数
<br />判断为NULL<br />MS: ISNULL(field , 0)<br />MY: COALESCE(field,0)<br /> <br />当前时间 <br />MS : GETDATE()<br />MY: NOW() CURDATE()<br /> <br />包含字符串<br />MS: CHARINDEX(field,'find',0 /*start from*/)<br />MY :LOCATE(field,'find',0/*start from*/)<br /> <br /原创 2010-12-09 14:53:00 · 393 阅读 · 0 评论 -
MySQL 关键字查询
某项目要提供search功能,我果断的使用 where keyword like ‘%keyword%’ 然后觉得无比幼稚,进行性能测试发现在900w行的表中做like,需要10+s,难以接受 网上有资料显示,like会使用索引,locate不会使用索引,而我用where locate(‘keyword’,keyword) > 0 做测试,两者消耗时间相当,所以like的性能不是一般的差 于原创 2012-04-18 16:25:15 · 2447 阅读 · 0 评论