小编Sha*_*haz的帖子

棘手使用子串

我的问题是关于一个名为contract_nm varchar2(14)的字段.我需要从中获取3个不同的值,使用该字段来获取where子句的过滤器.

以下是样本数据以及数据的长度,可以是9或10或11,现在也不多.

CONTRACT_NM               LENGTH(CONTRACT_NM)
F.US.WZ10                          9
F.US.WZ11                          9
F.US.WZ12                          9
F.US.RBZ10                         10
F.US.RBZ11                         10
F.US.RBZ12                         10
F.US.ZWAZ10                     11
F.US.ZWAZ11                     11
F.US.ZWAZ12                     11
etc
Run Code Online (Sandbox Code Playgroud)

1)我需要显示contract_nm的最后3个字符.

2)检查contract_nm的最后3个字符,看看第一个字母是否是下面的字母之一,然后是MONTH,YEAR将是接下来的2个字母,DAY将默认为该月的第一天.我需要显示日期,因为它进入日期字段.

Trade Months (Terms):
F              January                                
G             February                              
H             March                   
J              April                       
K             May
M       June                           
N             July
Q             August
U             September
V             October
X             November
Z       December
Run Code Online (Sandbox Code Playgroud)

3)这有点难以用书面解释,我会尽力希望你理解我!读取contract_nm数据,忽略前五个字符(F.US.),然后忽略最后3个字符,即Z11.现在,我们正在使用的是中间的1个字符(9个长度)或2个字符(10个长度)或3个字符(11个长度)的数据,总是看到下面的数据.如果是1个字符,则显示该字母,否则显示2个字符,然后检查第2个字母,如果不是"E"或"A"或"T",则显示两个字母,否则只显示第一个字母.否则如果是3个字符,则显示前2个字母.

4)我需要一个过滤器,我的where子句读取contract_nm数据,忽略前五个字符(F.US.),然后忽略最后3个字符,即Z11.现在,我们正在使用的是中间的1个字符(9个长度)或2个字符(10个长度)或3个字符(11个长度)的数据,总是看到下面的数据.如果是2个字符,则检查第二个字母,如果不是'E'或'T',则不要拉数据,否则执行.否则如果是3个字符,则检查第3个字母,如果不是'E'或'T',则不要拉数据,否则执行.

oracle substring

3
推荐指数
1
解决办法
6973
查看次数

标签 统计

oracle ×1

substring ×1