oracle 查询 字符函数,Oracle 字符串查询以及拆分函数

select id,SUBSTR(detail,INSTR(detail,'hijk')+5,Instr(detail,';abcd=')-INSTR(detail,'def')-5)

from(

select a.id,a.detail,a.file

from table_a

where not exists(

select/*+index(b id)*/ id ##带上所有查询,注意如果用别名,那么表名也用别名

from

table_b b

where b.id=a.id

)

)

where file like '%xxxxxx%'

其中有两个函数需要注意一下:

第一是 INSTR

可以有四个参数

第一是数据源,第二是要查询的字符串,第三是起始位置,第四是出现次数

INSTR( source_string, substring [, start_position [, occurrance ] ] )

INSTR('Welcome to PSOUG.org', 'o') would return 5 (Finds the first occurrence of 'o')

INSTR('Welcome to PSOUG.org', 'o', 1, 1) would return 5. (Finds the first occurrence of 'o')

INSTR('Welcome to PSOUG.org', 'o', 1, 2) would return 10. (Finds the second occurrence of 'o')

INSTR('Welcome to PSOUG.org', 'o', 1, 3) would return 18. (Finds the third occurrence of 'o')

INSTR('Welcome to PSOUG.org', 'o', -2, 2) would return 10. (Count back 2, then find the 2nd 'o')

INSTR 可以控制查询要搜索的字符串,并且返回出现的位置。

要注意的地方

Both source_string and substring can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The value returned is of NUMBER datatype.

Both start_position and occurrence must be an integer of datatype NUMBER, or any datatype that can be implicitly converted to NUMBER.

The first position in the source_string is 1, not 0. 没有要查询的字符串的时候,返回0

The INSTR search is case sensitive.

http://psoug.org/definition/INSTR.htm

第二是SUBSTR

有三个参数,第一是数据源,第二是起始位置,第三是长度

参考博文:

SUBSTR functions

The SUBSTR functions (SUBSTR, SUBSTRB, SUBSTRC, SUBSTR2, and SUBSTR4) return a portion of string, beginning at a specified position in the string. The functions vary in how they calculate the length of the substring to return.

SUBSTR calculates lengths using characters as defined by the input character set.

SUBSTRB calculates lengths using bytes.

SUBSTRC calculates lengths using Unicode complete characters.

SUBSTR2 calculates lengths using UCS2 code points.

SUBSTR4 calculates lengths using UCS4 code points.

Return Value

The return value is the same data type as string.

Syntax

{SUBSTR | SUBSTRB | SUBSTRC | SUBSTR2 | SUBSTR4}(char, position [, substring_length ])

Arguments

string

A text expression that is the base string from which the substring is created.

position

The position at which the first character of the returned string begins.

When position is 0 (zero), then it is treated as 1.

When position is positive, then the function counts from the beginning of string to find the first character.

When position is negative, then the function counts backward from the end of string.

substring_length

The length of the returned string. SUBSTR calculates lengths using characters as defined by the input character set. SUBSTRB uses bytes instead of characters. SUBSTRC uses Unicode complete characters. SUBSTR2 uses UCS2 code points. SUBSTR4 uses UCS4 code points.

When you do not specify a value for this argument, then the function returns all characters to the end of string. When you specify a value that is less than 1, the function returns NA.

Examples

Example 8-120 Retrieving a Charachter Substring

The following example returns several specified substrings of "abcdefg".

SHOW SUBSTR('abcdefg',3,4)

cdef

SHOW SUBSTR('abcdefg',-5,4)

cdef

Example 8-121 Retrieving a Substring Using Bytes

Assume a double-byte database character set.

SHOW SUBSTRB('abcdefg',5,4.2)

cd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值