上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 37 下一页
摘要: 数据转换服务中有执行客户SQL脚本的转换,在SSIS中这个特性得到加强。在SSIS中可以使用VB.NET这种语言。这个系列中将介绍这些脚本任务,例如控制执行流程,实现自定义转换,并举例说明。在SSIS中有下面几种脚本任务。ActiveX Script Task:这种任务允许执行ActiveX语言脚本,例如VBScript。这种任务是为了和以前版本兼容,在SQL Server 2008版本中已经被去掉,这里我们不会详细介绍。Script Task:这种任务是用来代替ActiveX script Task的,用它来控制包的执行。它允许执行VB.NET语言,很不幸只能使用这一种语言。但是还有一个选择 阅读全文
posted @ 2011-09-14 16:00 nd 阅读(3280) 评论(0) 推荐(0)
摘要: 在T-SQL中没有除法运算,但是在T-SQL中可以实现类似除法的操作Divide。一般除法操作的结果一个列来自于被除关系表,剩下的来自除关系表。这里举一个例子来说明。假设如下有三个表:客户Customers,销售人员Employees,订单Orders,查询返回一些客户,要求这些客户和所有美国雇员都至少有一次交易记录。来看下面一个语句:select custid from Sales.Customers as Cwhere not exists(select * from HR.Employees as Ewhere country='USA'and not exists(se 阅读全文
posted @ 2011-09-02 14:13 nd 阅读(8035) 评论(3) 推荐(1)
摘要: 经常听说SQL Server最难的部分是性能优化,不禁让人感到优化这个工作很神秘,这种事情只有高手才能做。很早的时候我在网上看到一位高手写的博客,介绍了SQL优化的问题,从这些内容来看,优化并不都是一些很复杂的问题,掌握了基本的知识之后也可以尝试优化自己的SQL程序,甚至是其他相关的程序。优化是一些工作积累之后的经验总结和代码意识,只要平时注意积累,你也可以做优化的工作。这一篇随笔是转载,不过我强... 阅读全文
posted @ 2011-08-02 17:22 nd 阅读(7619) 评论(29) 推荐(17)
摘要: SQL语句是一种集合操作,就是批量操作,它的速度要比其他的语言快,所以在设计的时候很多的逻辑都会放在sql语句或者存储过程中来实现,这个是一种设计思想。但是今天我们来讨论另外一个话题。Sql页提供了丰富的函数供我们使用,还有很多操作有意想不到的结果,今天这个随笔来看看一些不常见到的sql语句。这些语句不像普通的增删查那样平白,它的奇妙之处有时候让人另眼相看。 1. 假设我想把Person.Contact表中所有人的名字用逗号连接起来,串成一个字符串,可能会想到使用游标把FirstName查出来然后逐行赋值给一个字符串变量,可是使用游标的代价是很大的。看看下面的代码:declare @name. 阅读全文
posted @ 2011-08-01 16:55 nd 阅读(3702) 评论(22) 推荐(4)
摘要: 渐变维度(SCD)转换提供了一种维护渐变维度或渐变表的方法,渐变维度的分析处理是一个很大的话题。一般一个维度表通常包含一些描述其他信息的离散值,例如,价格,重量,销售地区。问题是如果随着时间的推移这些信息改变我们将如何维护这个表,特别是在数据转移的过程中。例如我们查看AdventureWorks中的product表,如图1图1 通常在联机事务处理(OLTP)数据库中,我们会用一行的数据来保存产品信息。如果产品的售价从10美元上涨到15美元,我们直接更新StandardCost字段为15,这样做完成了任务:现在的售价是多少?但是丢失了历史数据,我们不知道涨价之前的价格是多少?价格上涨了多少?解决 阅读全文
posted @ 2011-07-17 17:42 nd 阅读(6024) 评论(4) 推荐(4)
摘要: 提到排名函数我们首先可能想到的是order by,这个是排序,不是排名,排名需要在前面加个名次序号的,order by是没有这个功能的。还可能会想到identity(1,1),它也给了一个序号,但是不能保证给出的序号是连续升序的。除非能够保证所有的Insert语句都能够正确成功地完成,并且没有删除操作,实际的使用中大多数的表都不能保证这样。好在SQL Server中提供了一些排名函数来辅助实现这些功能。排名函数按照需要的顺序对数据进行排名,并提供一个值对数据。下面来了解一下这些排序函数功能。 ROW_NUMBERROW_NUMBER函数允许以上升,连续的顺序给每一行数据一个序号,注意ROW_N 阅读全文
posted @ 2011-07-08 19:22 nd 阅读(5034) 评论(16) 推荐(10)
摘要: 透视今天抽一点时间来看看透视和逆透视语句,简单的说就是行列转换。假设一个销售表中存放着产品号,产品折扣,产品价格三个列,每一种产品号可能有多种折扣,每一种折扣只对应一个产品价格。下面贴出建表语句和插入数据语句。 1 create table SalesOrderDetail( 2 ProductID int /*unique多谢wuu00的提醒*/, 3 UnitPriceDiscount float, 4 ProductPrice float 5 ) 6 insert into SalesOrderDetail values 7 (711,.00,12), 8 (711,.00,13), . 阅读全文
posted @ 2011-07-07 17:23 nd 阅读(4126) 评论(21) 推荐(5)
摘要: 在模糊查找中我们提到脏数据是怎样进入到表中的事情,主要还是由于一些“Lazy-add”造成的。这种情况我们的肉眼很容易被欺骗,看上去是同一个单词,其实就差那么一个字母,变成了两个不同的单词。一个简单的例子是X-Ray Tech和xRey,我们很有可能认为他们是同一个职务,CT操作员,但是如果让计算机来处理的话,它们是两种截然不同的东西。 和模糊查找一样,模糊分组可以查找出多行中出现的类似的单词进行归类。我们可以使用这些归类得到的结果清洗数据源或者在不修改基础数据的情况下对原表进行修改。模糊分组也需要一个输入字符流,还需要一个OLE DB数据连接,用于存放分析得到的结果。模糊分组任务的编辑界面. 阅读全文
posted @ 2011-07-04 22:21 nd 阅读(2498) 评论(2) 推荐(0)
摘要: BI项目中经常会有一些提取,转换,数据处理(ELT)的工作,其中最主要的是处理过赃数据。假设在项目中我们向数据库中注入了测试数据,但是通过一个外键从另外一个表中载入数据的时候没有对应的数据,那么这一行就是赃数据。这时候可以使用SQL中的Sound-Ex,full-text,相似度算法等方法查找。这种策略需要花费大量的时间和精力来设计算法,测试,维护,并且它们都是基于词汇的,复用的可能性很小。也可能你会放弃自己处理并把它抛给一些有经验的高手专家来做这些工作,也可能你会在表中添加一些新的数据已达到外健关联的目的,但是这种方法被称作Lazy-add(懒惰的做法)。因为是手工添加数据难免会带来拼写错误 阅读全文
posted @ 2011-06-27 21:30 nd 阅读(4835) 评论(11) 推荐(4)
摘要: 和关键词提取一样,关键词查找使用相同的算法和统计模型将输入流中的字符串按照名词或者名词词组进行统计,不同的是它参照一个已经存在的词汇表,输出的统计结果也仅限于这个词汇表中的关键词。关键词提取和关键词查找可以搭配使用。定期地使用关键词提取来产生关键词词汇表,也可以在这个词汇表中人为删除或添加想要统计的关键词,最后使用关键词查找来产生最终的统计结果。在上一个章节中我们将统计结果中的“model”从统计结果中删除,然后我们可以将他们整理出来,然后删除重复的,添加一些对有统计价值的关键词。这里假设我们想统计有哪些模型招致客户的不满以致留言评价,但是我们想只保留模型的名称,而不是类似“model XX- 阅读全文
posted @ 2011-06-24 21:04 nd 阅读(1823) 评论(0) 推荐(1)
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 37 下一页