oracle 11g正则表达式模式

时间:2016-05-25 19:10:18

标签: sql regex oracle11g

我有一个oracle 11g表。列A中的数据是RS_X,RS_2,RS_3等。

如果数据是' X'在RS_之后,输出应设置为' -1'。

有人可以让我知道我该怎么做。

由于 帕

3 个答案:

答案 0 :(得分:1)

如果您想使用REGEX执行此操作,请使用此SQL。

update my_table
set output = -1
where regexp_like(columnA, '^RS_X')

" RS_X"所有记录在columnA中它们的值的开头,将输出中的值设置为-1。

答案 1 :(得分:0)

您可以使用select decode和substr

select decode(substr(columnA, 4,1),'X', -1, columnA) from my_table;

或与条件

select  -1  from my_table
where substr(columnA, 4,1) = 'X' ;

答案 2 :(得分:0)

使用以下查询获取输出 -

select col1,decode(substr(col1,4,1),'X',-1,1) from test1

输出就像 -

RS_1    1
RS_2    1
RS_3    1
RS_X   -1