我的問題是關於一個名爲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
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
3)這有點難以在寫作中解釋,我會盡力希望你能理解我!讀取contract_nm數據,忽略前五個字符(F.US.),然後忽略最後3個字符,即Z11。現在,我們正在使用的是中間數據的1個字符(9個長度)或2個字符(10個長度)或3個字符(11個長度),總是見下面的數據。如果是1個字符,則顯示該字母,否則如果是2個字符,則檢查第二個字母,如果不是'E'或'A'或'T'則顯示兩個字母,否則顯示第一個字母。否則,如果3個字符,則顯示前2個字母。
4)我需要一個過濾器來爲我的where子句讀取contract_nm數據,忽略前五個字符(F.US.),然後忽略最後3個字符,即Z11。現在,我們正在使用的是中間數據的1個字符(9個長度)或2個字符(10個長度)或3個字符(11個長度),總是見下面的數據。如果是2個字符,那麼檢查第二個字母,如果不是'E'或'T',則不要拉取數據,否則就這樣做。否則,如果有3個字符,那麼檢查第三個字母,如果不是'E'或'T'則不要拉取數據,否則就這樣做。