
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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)