zoukankan      html  css  js  c++  java
  • SQL2005EXPRESS查询关键字出现次数的代码(比常规方法快5倍) [ZT]

    通常我们要解决查询次数的方法是这样的,在有空格或者其他分割符号的地方分割短语,然后逐个单词地进行比较。但是这样的速度是非常慢的,现在有一种方法比这种方法快5倍!
    那就是REPLACE!
    SQL Server提供了REPLACE函数,它可以用一个子串去替换所有指定字符串中出现的另外一个字符串,由于REPLACE是内部函数,因此运行速度非常快!!
    具体过程:
    I LOVE YOU,BUT YOU DONG'T LOVE ME. 如果我们要查找LOVE这个单词出现的次数,我们就用REPLACE函数,用LOVEX替换掉LOVE,这样,原始语句变为I LOVEX YOU,BUT YOU DONG'T LOVEX ME.然后大家都想到了,对了,用LEN(),把后面的字符数量减去前面的,怎么样2,很好,就是我们需要的次数。
    OK 看一下代码:
    建立一个新的字符串,是你需要查询的关键字后面+一个X
    DECLARE @BIGGERWORD VARCHAR(21)
    SELECT @BIGGERWORD=@WORD+'X'
    建立一个新的字符串,内容是旧的内容用第一个字符串替换掉原来的关键字之后的字符
    DECLARE @BIGGERPHRASE VARCHAR(2000)
    SELECT @BIGGERPHRASE=REPLACE(@PHRASE,@WORD,@GIGGERWORD)
    返回一个值,新字符串长度-原来字符串长度,即查询关键字所出现的次数
    RETURN LEN(BIGGERPHRASE)-LEN(@PHRASE)
  • 相关阅读:
    线段树学习笔记
    树状数组学习笔记
    P1816 忠诚 ST表模版
    NOIP 2017 D1T2 时间复杂度
    Ubuntu镜像源
    字符串数据结构模板
    白书的一些奇怪模板
    高精度模板
    大整数类模板
    线段树模板1
  • 原文地址:https://www.cnblogs.com/RobotTech/p/1066647.html
Copyright © 2011-2022 走看看