学习Excel技术,关注微信公众号: excelperfect 有时候,我们想要知道某列中有多少个值同时又出现在另一列中,例如下图1所示,列B中有一系列值,列D中有一系列值,哪些值既出现有列B中又出现在列...因为数据较少,不难看出,在列B中仅有2个值出现在列D中,即“完美Excel”和“Office”。 ?...MATCH(B3:B13,B3:B13,0) 查找单元格区域B3:B13中每个单元格的值在该区域首次出现的位置,得到数组: {1;2;3;1;5;6;2;3;5;1;2} 公式中: ROW(B3:B13...TRUE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE} 其中TRUE表明该单元格中的值首次在该区域出现,FALSE表明该单元格中的值已经在前面出现过...传递给COUNT函数统计数组中数字的个数: COUNT({1;5;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A}) 得到结果: 2 即列B中有两个值在列D中出现
一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据处理的问题,一起来看看吧。 大佬们,如何把某一列中包含某个值的所在行给删除?比方说把包含电力这两个字的行给删除。...二、实现过程 这里【莫生气】给了一个思路和代码: # 删除Column1中包含'cherry'的行 df = df[~df['Column1'].str.contains('电力')] 经过点拨,顺利地解决了粉丝的问题...后来粉丝增加了难度,问题如下:但如果我同时要想删除包含电力与电梯,这两个关键的,又该怎么办呢? 这里【莫生气】和【FANG.J】继续给出了答案,可以看看上面的这个写法,中间加个&符号即可。...顺利地解决了粉丝的问题。 但是粉丝还有其他更加复杂的需求,其实本质上方法就是上面提及的,如果你想要更多的话,可以考虑下从逻辑 方面进行优化,如果没有的话,正向解决,那就是代码的堆积。...这里给大家分享下【瑜亮老师】的金句:当你"既要,又要,还要"的时候,代码就会变长。
图1 在下图2所示的工作簿GetData.xlsm中,根据列C中的数据,在上图1的工作簿Data.xlsx的列E中查找是否存在相应数据的单元格。 ?...图2 然后,将Data.xlsx中对应行的列I至列K单元格中的数据复制到GetData.xlsm相应的单元格中,如下图3所示。 ?... 3 Then MsgBox ("请选择列C中的单元格或单元格区域.")...Exit Sub Else '遍历所选的单元格 For Each rng In Selection '在数据工作表中查找相应的值所在的单元格...Set rngFound =wksData.Range("E:E").Find(rng, LookIn:=xlValues, lookat:=xlWhole) '如果找到
规则引擎集合相关处理 在实际生产过程中,有很多关于集合的处理场景,比如一个Fact对象中包含有一个集合,而需要判断该集合是否包含某个值。...当然也可以通过function函数来做相应的比较,在个在其他章节讲到过,就不在此赘述。下面重点以几个实例才进行讲解,在具体实践中根据具体情况来进行运用。...4中使用方法: 第一种,首先获取Fact对象Corporation,并重新定义了它的属性scopes。...然后,通过from关键字来遍历scopes中的值,获得符合条件的。此时并不需要传入Scope对应的fact对象。...第三种,先获得满足条件的Scope的Fact对象,然后再利用此fact对Corporation的fact对象进行筛选,只有满足条件才可以继续。
可这次我是想在此基础上,能变成能转换任何论坛的,因此不想借助他自带的存储过程。...先前有一点很难做,因为一般的主键都是自动递增的,在自动递增的时候是不允许插入值的,这点让我一只很烦,今天有时间,特地建立了一个表来进行测试 字段名 备注 ID 设为主键 自动递增 Name 字符型...'); 很明显,抛出一个Sql错误: 消息 544,级别 16,状态 1,第 1 行 当 设置为 OFF 时,不能为表 'Test' 中的标识列插入显式值。 ...至此,我只要在转换插入数据的时候,利用一个事务进行插入工作 Set IDENTITY_INSERT [TableName] On; Tran Insert Into....Set IDENTITY_INSERT [TableName] Off; ok,成功插入数据,目的达到。 写这文章不是为了什么,就为了自己能记住,让自己以后能熟练运用。
由于栈是一个表,因此任何实现表的方法都能实现栈。通常使用数组是一个较为简便的方法。 1.3 队列ADT 和栈一样,队列(queue)也是表。不同的是,使用队列时插入在一端进行而删除则在另一端进行。...每个关键字被映射到从0到Table-Size - 1这个范围中的某个数,并且被放到适当的单元中。这个映射就叫做散列函数(hash function)。...值27表示英文字母表的字母个数外加一个空格,而 729=27^2 。...3.3 冲突解决 解决了关键字均匀映射的问题,剩下的主要编程细节是解决冲突的消除问题。如果当一个元素被插入时另一个元素已经存在(散列值相同),那么就产生了冲突,这种冲突需要消除。...如果错拼检测(与纠正错误相比)更重要,那么整个词典可以被预先散列,单词则可以在常数时间内被检测。
但MySQL要求两个反斜杠(MySQL自己解释一个,正则表达式库解释另一个)。 匹配字符类 存在找出你自己经常使用的数字、所有字母字符或所有数字字母字符等的匹配。...例如,你可能需要寻找所有的数,不管数中包含多少数字,或者你可能想寻找一个单词并且还能够适应一个尾随的s(如果存在),等等。...INSERT SELECT 中 SELECT 语句可包含 WHERE 子句以过滤插入的数据。...只有一点例外,假如表中的一个旧记录与一个用于 PRIMARY KEY 或一个 UNIQUE 索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。...建议在定义列的时候,检查 COMMENT 备注,是否运行非空,是否具有唯一性。 SQL 允许指定默认值,在插入行时如果不给出值,DBMS 将自动采用默认值。
TreeSet 将元素存储在红-黑树数据结构中,而 HashSet 使用散列函数。 LinkedHashSet也使用了散列,使用了链表来维护元素的插入顺序。...排序是按字典顺序(lexicographically)完成的,因此大写和小写字母位于不同的组中。...即从集合的一端放入事物,再从另一端去获取它们,事物放入集合的顺序和被取出的顺序是相同的。 队列通常被当做一种可靠的将对象从程序的某个区域传输到另一个区域的途径。...PriorityQueue 允许重复,最小的值具有最高的优先级(如果是 String ,空格也可以算作值,并且比字母的优先级高)。...因此,如果创建了任何实现了 Iterable 的类,都可以将它用于 for-in 语句中: iterator() 返回的是实现了 Iterator\ 的匿名内部类的实例,该匿名内部类可以遍历数组中的每个单词
A:创建具有描述性的名称通常有不错的效果。有时候要多用几个单词来命名。所有名称都不能包含空格,所以使用下划线能够让你创建更具描述性的名称。...命名时最好避免首字母大写,因为SQL不区分大小写,极可能会搞错数据库。 ---- Q:为什么不能直接把BLOB当成所有文本值的类型? A:因为这样很浪费空间。...而且它也不等于另一个NULL,事实上,两个NULL根本不能放在一起比较。值可以是NULL,但是它不会等于NULL,因为NULL代表未定义的值!...为表插入数据时,可以使用任何一种INSERT语句。 NULL是未定义的值。它不等于0,也不是空值。值可以是NULL,但绝非等于NULL。 没有在INSERT语句中被赋值的列默认为NULL。...可以把列修改为不使用NULL,这需要在创建表时使用关键字NOT NULL。 创建表时使用DEFAULT,可于日后输入缺乏部分数据的记录时自动的填入默认值。
一个很重要的内容就是索引包含表中的列值,并且这些值被存储到了数据结构中。简单易记的一句话,索引就是数据结构。 那么可不可以说,索引就是B-tree呢?...因为,B-tree的索引在查找、删除、插入操作时的时间复杂度是对数时间。另外一个重要的原因是,可以把数据存储在B-tree中。...因为索引是可能是按照[WordName] 的字母进行了排序,这就表明,所有以”b” 开头单词的索引是挨着的。更重要的是索引中存储着指向列值实际数据行的指针。...这时,列值将插入到hash 表中和一个键对应,并和实际的数据行有一个映射关系,也就是该键是一个指向表中数据行的指针。...也就是说,添加为索引的列值是存储在索引中,指向相应数据行的指针也是存储在索引中。
,检测字符串中的字母是否全由大写字母组成 istitle() 等价于str.istitle,检测所有单词首字母是否为大写,且其它字母是否为小写 isnumeric() 等价于str.isnumeric,...如果 False ,则返回包含字符串列表的系列/索引。 regex:布尔值,默认无。...drop_whitespace:布尔值,如果为true,则在新行的开头删除空白(如果有) break_long_words:布尔值(如果为True)会打断比传递的宽度长的单词。...na_rep:str 或无,默认无,为所有缺失值插入的表示: 如果na_rep 为None,并且others 为None,则从结果中省略系列/索引中的缺失值。...如果na_rep 为None,并且others 不是None,则在任何列(连接之前)中包含缺失值的行将在结果中具有缺失值。
单词拼写检查功能的hash函数可考虑: 将单词中每个字母的ASCll码值“进位”相加 再跟哈希表的size求余、取模,作为散列值 比如,英文单词java,我们转化出来的散列值就是下面这样: hash("...最简单的就是 3.1.1 线性探测(Linear Probing) 当我们往散列表中插入数据时,如果某个数据经过散列函数散列之后,存储位置已经被占用了,我们就从当前位置开始,依次往后查找,看是否有空闲位置...动态散列表,随着数据的删除,散列表中的数据会越来越少,空闲空间会越来越多。 如果对空间消耗非常敏感,可以在装载因子小于某个值之后,启动动态缩容。...常用英文单词20万个,假设单词平均长度10个字母,平均一个单词占用10字节,那20万英文单词大约占2MB存储空间,这完全可以放在内存。所以我们可以用散列表来存储整个英文单词词典。...当用户输入某个英文单词时,拿用户输入的单词去散列表中查找: 查到,则说明拼写正确 没有查到,则说明拼写可能有误,给予提示 这就能轻松实现快速判断是否存在拼写错误。
拉链法:将大小为M的数组中的每一个元素指向一条链表,链表中的每一个结点都存储了散列值为该元素的索引的键值对。 查找分两步:首先依据散列值找到相应的链表,然后沿着链表顺序查找相应的键。...特点:散列最基本的目的在于均匀地将键散布开来,因此在计算散列后键的顺序信息就丢失了,假设你须要高速找到最大或最小的键,或是查找某个范围内的键,散列表都不是合适的选择。...7、插入D时,导致最左边的叶子结点被分裂,D恰好也是中间元素,上移到父节点中,然后字母P,R,X,Y陆续插入不须要不论什么分裂操作(别忘了,树中至多5个孩子)。...基本性质: 每一个结点都含有R条链接,当中R为字母表的大小。(单词查找树一般都含有大量的空链接,因此在绘制一颗单词查找树时通常会忽略空链接。)...树中的每一个结点中不是包括一个或几个keyword,而是仅仅含有组成keyword的符号。比如,若keyword是数值,则结点中仅仅包括一个数位;若keyword是单词,则结点中仅仅包括一个字母字符。
这两种方法的不同之处在于:开散列法把发生冲突的关键码存储在散列表主表之外,而闭散列法把发生冲突的关键码存储在表中另一个槽内。...1、线性探测(Linear probing) 插入一个值 使用散列函数H(K)在大小为M的表中插入密钥K时: 设置 indx = H(K) 如果表位置indx已经包含密钥,则无需插入它。...检索一个值 如果使用线性探测将键插入表中,则线性探测将找到它们! 当使用散列函数 H(K)在大小为N的表中搜索键K时: 设置 indx = H(K) 如果表位置indx包含键,则返回FOUND。...Over 否则,如果表位置 indx 为空,则在其中插入键。Over 其他碰撞。设置 indx = RNG.next() mod M. 如果已探测所有M个位置,则放弃。就只能做哈希表的扩容了。...另一个想法:哈希表中的条目只是指向链表(“链”)头部的指针;链接列表的元素包含键... 这称为“单独链接”,也称为“开放式哈希”。
NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。...FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。...SQL CHECK 约束 CHECK 约束用于限制列中的值的范围。 如果对单个列定义 CHECK 约束,那么该列只允许特定的值。...SQL DEFAULT 约束 DEFAULT 约束用于向列中插入默认值。 如果没有规定其他的值,那么会将默认值添加到所有的新记录。...如果您希望使查询简单且更易维护,那么请不要在日期中使用时间部分! 19.SQL NULL 值 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。
我们可以从一个表中复制所有的列插入到另一个已存在的表中: INSERT INTO table2 SELECT * FROM table1; 或者我们可以只复制希望的列插入到另一个已存在的表中: INSERT...FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。 CHECK - 保证列中的值符合指定的条件。 DEFAULT - 规定没有给列赋值时的默认值。...ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。...有必要的话,可以使用转换函数和计算字段; (3) 检验包含所需数据的新表; (4) 重命名旧表(如果确定,可以删除它); (5) 用旧表原来的名字重命名新表; (6) 根据需要,重新创建触发器、...SQL NULL 值 NULL 值代表遗漏的未知数据。默认地,表的列可以存放 NULL 值。 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。
允许的编辑操作包括替换成另一个字符、插入一个字符或者删除一个字符。...于是,人们也展开了一系列将语义融入编辑距离中的尝试。开始的尝试包括给插入、删除和替换三种操作赋予不同的权重,常见的是把替换的权重加大,从而让算法倾向于替换字母越少语义越近。...后来的研究也包括为每个字母之间的替换赋予不同的权重,比如在美式全键盘输入法中,因为离得近的字母更容易被输入错误,所以纠正原则可以是为键盘上离得近的字母设定更近的距离,q和w是相邻的两个键,则将其距离设置为...于是就先出现了one-hot这一编码方式,意思就是如果想要表示某个数据库里面所有的单词,就数一数这里面一共出现了多少个单词(比方说有2000个),根据这个定义一个字典,然后定义一个字典大小那么长的向量,...如果商品是小刀,那么再不妨假设blunt 和 sharp是除good和bad之外的另一对特征词。 如果商品是鸡蛋,那么fresh和old也许会是另一对不错的特征词。
有时候要多用几个单词来命名。所有名称都不能包含空格,所以使用下划线能够让你创建更具描述性的名称。 命名时最好避免首字母大写,因为SQL不区分大小写,极可能会搞错数据库。...创建表后你就无法真正的改变列的顺序了。最多只能在指定位置添加新列,然后删除旧列,但是这样会失去旧列中的所有数据。 如果我已经创建了主键,然后又意外的想改用另一列呢?...A:外键为NULL,表示在父表中没有相符的主键。但我们可以确认外键包含有意义、已经存储在父表中的值,请通过约束实现。 不能单纯的使用另一张表的键,称之为外键,而不加上约束吗?...插入外键列的值必须已经存在与父表的来源中,这是引用完整性。 创建外键作为表的约束提供了明确的优势,如果违反了规则,约束会阻止我们破坏表。 外键不一定要是父表的主键,但是要具有唯一性。 ?...piggy_bank( id INT NOT NULL PRIMARY KEY, coin CHAR(1) CHECK (coin IN ('P','N','D','Q')) ); CHECK(检查)用于限定允许插入某个列的值
在表格中插入几个学生的姓名,年龄和gpa值。...使用以下语法从Hive表中删除数据。 DELETE FROM tablename [WHERE expression]; 如果gpa列的值为1或0,请从学生表中删除所有数据行。...如果使用永久表的名称来创建临时表,则在会话期间无法访问该永久表,除非您删除或重命名该临时表。您可以创建一个与其他用户的临时表同名的临时表,因为用户会话是独立的。临时表不支持分区的列和索引。...如果表中的year列的值与us_census表中的年份匹配,则从transfer_payments表中选择所有state和net_payments值。...相关查询包含带有等于(=)运算符的查询谓词。运算符的一侧必须引用父查询中的至少一列,而另一侧必须引用子查询中的至少一列。不相关的查询不会引用父查询中的任何列。
领取专属 10元无门槛券
手把手带您无忧上云