sql语句进行模糊查询时如何同时用一句话筛选多个关键词

sql语句进行模糊查询时如何同时用一句话筛选多个关键词,第1张

1、创建测试表,create table test_a(zlyt varchar2(20))

2、插入测试数据,并提交;

insert into test_a values('abc')

insert into test_a values('dfs')

insert into test_a values('rte')

commit

3、执行sql语句,

select zlyt, replace(replace(zlyt, 'b', 'x'), 'f', 'x') zlyt2

from TEST_A t

where zlyt like '%b%'

  or zlyt like '%f%'

扩展资料

1、在进行数据库查询时,有完整查询和模糊查询之分。

一般模糊查询语句如下:SELECT 字段 FROM 表 WHERE 某字段 Like 条件,其中关于条件,SQL提供了四种匹配模式:

1)% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

2)_ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

3)[ ] :表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

4)[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

2、REPLACE官方语法:

REPLACE ( string_expression , string_pattern , string_replacement )

1)参数含义:

string_expression 要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。

string_pattern 是要查找的子字符串。string_pattern 可以是字符或二进制数据类型。string_pattern 不能是空字符串 ('')。

string_replacement 替换字符串。string_replacement 可以是字符或二进制数据类型。

2)返回类型:

如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。

如果任何一个参数为 NULL,则返回 NULL。

REPLACE(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str。

select * from a,b where charindex(a.公司名称,b.公司名称)>0

其实就是charindex函数,这个是查找字符串在的函数,返回值是a.公司名称在b.公司名称的起始位置,如果大于0,则说明a.公司名称包含在b.公司名称中

declare @str varchar(max)='6688 sasaaaa wty',@sql varchar(max)

set @sql='select * from mingTest where 1=0 '

with cte as(select name=SUBSTRING(A.[str],number,CHARINDEX(' ',A.[str]+' ',number)-number) from A JOIN master..spt_values ON type='p' and number between 1 and LEN(@str)

WHERE CHARINDEX(' ',' '+A.[str],number)=number)

select @sql=@sql+'or [str] like ''%'+name+'%''' from cte where name<>''

EXEC @sql


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10080876.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存