java中sql常用函数,patindex详细解析

BSO 2020-10-28 15:58:00 java常见问答 7333

上次已经为大家介绍过java中常用函数,STUFF函数,今天再来为大家介绍一些与之相关的内容,也就是java中sql常用函数,patindex的详细解析。一起来看看吧。

首先说一下,patindex('%[pattern]%','ddabcaabbeeabbr'),patindex('%[^pattern]%','ddabcaabbeeabbr')

在此先说[]的用法,[]是指定某些特殊的字符。[^]除[]之外的字符串,[]这其中的每一个

如:

Symbol Meaning

LIKE'5[%]' 5%

LIKE'[_]n' _n

LIKE'[a-cdf]' a, b, c, d, or f

LIKE'[-acdf]' -, a, c, d, or f

LIKE'[ [ ]'[

LIKE']']

LIKE'abc[_]d%' abc_dandabc_de

LIKE'abc[def]' abcd, abce, and abcf

如:

select patindex('%[d]%','rcrdsddddaadadffdr')

返回4,[]中d在字符串rcrdsddddaadadffdr的第一次出现的位置。

select patindex('%[cd]%','rcrdsdddrdaadadffdr')

返回2,[]中c,d在其中一个的位置,返回最先出现的这个位置,c在此字符串里第一次出现位置是2,而d是4,结果取最先的那个。

select patindex('%[sd]%','rcrdsdddrdaadadffdr')

返回4,[]中c,d在其中一个的位置,返回最先出现的这个位置,s在此字符串里第一次出现位置是5,而d是4,结果取最先的那个。

select patindex('%[^r]%','rrrdsdddrdaadadffdr')

返回4,除[]中的字符串的匹配字符,第一次出现d不在[^r]里,所以就找到第一次这位。

select patindex('%[^rd]%','rrrdsdddrdaadadffdr')

返回5,除[]中的字符串的匹配字符,第一次出现s不在[^rd]里,所以就找到第一次这位。

select patindex('%[^rsd]%','rrrdsdddrdaadadffdr')

返回11,除[]中的字符串的匹配字符,第一次出现a不在[^rsd]里,所以就找到第一次这位。

eg:去除括号及括号内内容(批量化处理),代码展示如下:

-- > 测试数据:#
if object_id('tempdb.dbo.#') is not null drop table# 新建临时表
create table#(col varchar(46))
insert into#
select '重庆唯远实业有限公司(2009年01月05日)'
union all
select '江苏苏美达船舶工程有限公司(2009年01月05日)'
union all
select '上海启门机电有限公司(2009年01月04日)'
union all
select '小洋人生物乳业集团有限公司(2009年01月04日)'
union all
select '沈阳鼎冷机电设备有限公司(2009年01月04日)'
union all
select '嘉柏(中国)国际货运代理有限公司(2008年12月31日)'
union all
select '广州宝洁有限公司(2008年12月31日)'
union all
select '烟台华科食品有限公司(2008年12月31日)'
union all
select '艾来得机械(上海)有限公司(2008年12月31日)'
union all
select '上海晓舟船舶配件有限公司(2008年12月31日)'
union all
select '上海力弘包装器材有限公司(2008年12月31日)'
/*
------------------------------
重庆唯远实业有限公司
江苏苏美达船舶工程有限公司
上海启门机电有限公司
小洋人生物乳业集团有限公司
沈阳鼎冷机电设备有限公司
嘉柏(中国)国际货运代理有限公司
广州宝洁有限公司
烟台华科食品有限公司
艾来得机械(上海)有限公司
上海晓舟船舶配件有限公司
上海力弘包装器材有限公司
*/

解决方案一,代码展示如下:

select reverse(stuff(reverse(col), 1, charindex('(', reverse(col)), '')) from#

解决方案二,代码展示如下:

update tb
set col = reverse(substring(reverse(col), charindex('(', reverse(col)) + 1, len(col)))
select * from tb

解决方案三,代码展示如下:

select
left(name, patindex('%([0-9][0-9][0-9][0-9]年%', name) - 1) as name from[tb]

解决方案四,代码展示如下:

select left(col, len(col) - 13) from tb

以上就是关于 java中sql常用函数,patindex的详细解析。如果你对java知识感兴趣,想要了解更多java基础,敬请关注奇Q工具网。

推荐阅读:

java中sql字符串转函数,八大函数展示

java中sql字符串转函数,举例说明

java中patindex函数,实例详解