关于Oracle里面的一些小函数
要求A数据库表中的一个字符串 可能含有+ 例ORC+
也可能不含+
B要求如果该字符串含有+则取+之前的字符 例ORC+ 取ORC
C如果该字符串不含+则直接取该字符串
解答利用ORACLE中 INSTRSUBSTR以及CASE WHEN语法即可实现
Oracle中函数
INSTRINSTR方法的格式为
INSTR(源字符串 目标字符串 起始位置 匹配序号)
默认查找顺序为从左到右当起始位置为负数的时候从右边开始查找
例Select INSTR(ORC++) From dual
返回的是"4"如果该字符串没有匹配字符返回的是0
SUBSTR取子字符串取子字符串
SUBSTR(源字符串起始位置要取多少位)
从起始位置开始取多少"个
例Select SUBSTR(ORC+) From dual;
返回的是ORC
全例如下
表T_RCV_ISSUE
WH_CD字段
取 WH_CD 如果该字段包含+取+之前的字符
如果该字段没有+取整个字段
T_RCV_ISSUE表
WH_CD 分别为 MRPS+MRWSMRWS+MRPS
执行
SELECT CASE
WHEN INSTR(WH_CD + ) >
THEN SUBSTR(WH_CD INSTR(WH_CD + ) )
ELSE WH_CD
END AS WH_CD
FROM T_RCV_ISSUE
结果MRPSMRWSMRWSMRPS