通过charindex和substring相似于keyword的询问

功能:回去字符、二进制、文本或图像表明式的一片段

有的时候,随笔首要词里有
词1,词2那样格式的要紧词,通过珍贵词来查询其相关的稿子,大家得以经过以存款和储蓄进程方式来落实。

语法:SUBSTRING ( expression, start, length )

澳门金沙vip 1

SQL 中的 substring
函数是用来抓出多个栏位资料中的此中一些。这么些函数的称号在不一样的资料库中不别无二样:

 

参数:

上行下效如下:

expression
字符串、二进制字符串、文本、图像、列或含有列的表明式。请勿使用带有聚合函数的表明式。


start 整数或能够隐式调换为 int 的表明式,内定子字符串的初叶地方。

–用处:相关信息选拔

CREATE PROCEDURE UP_News_GetRelated
@TypeId int,  –文章分类标记
@KeyAll varchar(1000State of Qatar –关键词集合
 AS
澳门金沙vip, DECLARE @FirstKey varchar(225),@OtherKey varchar(500),@StrKey
varchar(500),@NumberKey int
 IF @KeyAll<>”
 BEGIN
  IF charindex(‘,’,@KeyAll) > 0
  BEGIN
   SET @OtherKey=@KeyAll
   SET @NumberKey=100
   SET @StrKey=”
   WHILE @NumberKey >= 0
   BEGIN
    IF @NumberKey<>0
    BEGIN
     SET @FirstKey=substring(@OtherKey,1,charindex(‘,’,@OtherKey)-1)
     SET
@OtherKey=substring(@OtherKey,len(@FirstKey)+2,len(@OtherKey))
    END
    ELSE
     SET @FirstKey=@OtherKey
    IF @NumberKey<>100
     SET @StrKey=@StrKey+’ or KeyWord like
”%’+@FirstKey+’%” ‘
    ELSE
     SET @StrKey=@StrKey+’
”%’+@FirstKey+’%” ‘
    IF @NumberKey<>0
     SET @NumberKey=charindex(‘,’,@OtherKey)
    ELSE
     SET @NumberKey=-1
   END  –获得首要字个数为N
                                   
   exec(‘select top 6 Title,[Html],WebName from VI_News where KeyWord
like '+@StrKey+' order by Id desc’)
  END
  ELSE  –得到根本字个数为1
 
   select top 6 Title,[Html],WebName from VI_News where KeyWord like
‘%’+@KeyAll+’%’ order by Id desc
  END
 ELSE  –得到主要字个数为0

  select top 6 Title,[Html],WebName from VI_News where TypeId =
@TypeId order by Id desc
GO

附:charindex  语法
  CHARINDEX ( expression1 , expression2 [ , start_location ] )
  参数
  expression1
  叁个表达式,此中蕴含要找出的字符的前后相继。expression1
是三个短字符数据类型分类的表明式。
  expression2
  多个表明式,日常是一个用以寻找钦点体系的列。expression2
归属字符串数据类型分类。
  start_location
  在 expression2 中寻找 expression1 时的序幕字符地点。若无给定
start_location,而是八个负数或零,则将从 expression2
的起头地方上马探寻。
  再次回到类型
  int
  注释
  如果 expression1 或 expression2 之一归属 Unicode 数据类型(nvarchar
或 nchar)而另二个不归属,则将另一个调换为 Unicode 数据类型。
  倘使 expression1 或 expression2 之一为 NULL 值,则当数据库宽容品级为
70 或更加大时,CHACR-VINDEX 重回 NULL 值。当数据库宽容等级为 65
或更小时,CHALX570INDEX 仅在 expression1 和 expression2 都为 NULL 时回来
NULL 值。
  假使在 expression2 内并未有找到 expression1,则 CHALacrosseINDEX 再次回到 0。

效率:再次回到字符、二进制、文本或图像表明式的一有个别

 

语法:SUBSTRING ( expression, start, length )

           SQL 中的 substring
函数是用来抓出多个栏位资料中的个中有的。那一个函数的名号在分化的资料库中不完全平等:

MySQL: SUBSTR(), SUBSTRING()
Oracle: SUBSTR()
SQL Server: SUBSTRING()

参数:

expression
字符串、二进制字符串、文本、图像、列或含有列的表明式。请勿使用带有聚合函数的表明式。

start 整数或能够隐式转变为 int 的表明式,钦定子字符串的上马地点。

length 整数或能够隐式调换为 int 的表达式,钦赐子字符串的长度。

返回值:

假如 expression 是一种扶助的字符数据类型,则赶回字符数据。假如expression 是一种扶植的二进制数据类型,则赶回二进制数据。即便 start =
1,则子字符串从表达式的首先个字符开始。

归来字符串的花色与给定表明式的档期的顺序相像(下表所示内容除了)。

给定表达式 返回类型

image

varbinary

ntext

nvarchar

代码示例:

上边包车型大巴示范重临 Employees 表中每人雇员的名字首字母及完整姓氏:

SELECT SUBSTRING(First Name,1,1) AS Initial, Last Name
FROM Employees

上面是结果集:

length 整数或能够隐式转变为 int 的表明式,钦命子字符串的长度。
返回值:

Initial……….Last Name

A…………….Funk
M…………….Pearson
L…………….Calafato
N…………….Danner
J…………….Lee
S…………….Byham
M…………….Sutter
R…………….King
A…………….Doyle

 

倘使 expression 是一种扶持的字符数据类型,则赶回字符数据。要是expression 是一种援救的二进制数据类型,则赶回二进制数据。假如 start =
1,则子字符串从表明式的首先个字符起初。

回去字符串的门类与给定表明式的项目相像。

加以表达式