随笔分类 -  T-SQL

摘要:已知一个数,得知那些行的合计后等于这个数:如,表中哪些行数相加等于200的全部组合 CREATE TABLE #t(ID VARCHAR(1),数据 INT) INSERT INTO #t select 'a',10 union all select 'b',90 union all select 阅读全文
posted @ 2020-11-16 16:31 VicLW 阅读(597) 评论(0) 推荐(0) 编辑
摘要:最近在给一个客户做调优的时候发现一个很有意思的现象,对于一个复杂查询(涉及12个表)建立必要的索引后,语句使用的IO急剧下降,但执行时间不降反升,由原来的8秒升到20秒。 通过观察执行计划,发现之前的执行计划在很多大表连接的部分使用了Hash Join,由于涉及的表中数据众多,因此查询优化器选择使用 阅读全文
posted @ 2020-10-14 12:05 VicLW 阅读(221) 评论(0) 推荐(0) 编辑
摘要:给定一个日期,按月每行拆分。 CREATE TABLE #temp(from_date DATE,to_date DATE); INSERT INTO #temp (from_date,to_date) VALUES ( '2013-10-25','2013-12-05'); SELECT * FR 阅读全文
posted @ 2020-07-16 15:52 VicLW 阅读(1170) 评论(0) 推荐(0) 编辑
摘要:简介 SQL Server 2012之后对窗口函数进行了极大的加强,但对于很多开发人员来说,对窗口函数却不甚了解,导致了这样强大的功能被浪费,因此本篇文章主要谈一谈SQL Server中窗口函数的概念。 什么是窗口函数 窗口函数,也可以被称为OLAP函数或分析函数。理解窗口函数可以从理解聚合函数开始 阅读全文
posted @ 2019-11-04 15:05 VicLW 阅读(632) 评论(0) 推荐(0) 编辑
摘要:很多人在开发需求中想获取一个随机数,或者从一组数字中获取一个数, 这个需求很简单,而且有很多方式可以实现,下面就介绍几种常见的方式,以作为笔记或供有需要的人参考. 比如有一组数字: 57 59 63 66 89 92 95,我们要从中随机取出一个: 阅读全文
posted @ 2019-11-02 10:34 VicLW 阅读(1376) 评论(0) 推荐(0) 编辑
摘要:SQL Serve提供了简单的字符模糊匹配功能,比如:like, patindex,不过对于某些字符处理场景还显得并不足够,日常碰到的几个问题有: 1. 同一个字符/字符串,出现了多少次 2. 同一个字符,第N次出现的位置 3. 多个相同字符连续,合并为一个字符 4. 是否为有效IP/身份证号/手机 阅读全文
posted @ 2019-10-31 14:26 VicLW 阅读(1387) 评论(0) 推荐(0) 编辑
摘要:简介 在SQL Server 中很多时候需要对一些字段中特殊的字符做处理,比如某个字段中包含一些回车、制表、换行等特殊字符(这些字符往往来源于Excel)。这些特殊字符的存在可能导致无法提取到所需数据,下面来简单介绍一下对这些特殊字符的处理。 一、特殊字符处理 char(10) 换行符( \r ) 阅读全文
posted @ 2019-10-31 13:37 VicLW 阅读(4168) 评论(0) 推荐(0) 编辑
摘要:在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。 往常我经常会看到一些所谓的优化建议不使用Count(* )而是使用Count(1),从而可以提升性能,给出的理 阅读全文
posted @ 2019-10-14 16:42 VicLW 阅读(452) 评论(0) 推荐(0) 编辑
摘要:概述 游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。 正常面向集合的思维方式是: 而对于游标来说: 这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想用面向集合的查询方式实 阅读全文
posted @ 2019-10-14 15:36 VicLW 阅读(513) 评论(0) 推荐(0) 编辑