【发布时间】:2016-05-25 19:10:18
【问题描述】:
我有一个 oracle 11g 表。 A列的数据为RS_X、RS_2、RS_3等。
如果 RS_ 之后的数据为“X”,则输出应设置为“-1”。
谁能告诉我我该怎么做。
谢谢 帕万
【问题讨论】:
我有一个 oracle 11g 表。 A列的数据为RS_X、RS_2、RS_3等。
如果 RS_ 之后的数据为“X”,则输出应设置为“-1”。
谁能告诉我我该怎么做。
谢谢 帕万
【问题讨论】:
如果您想使用 REGEX 执行此操作,请使用此 SQL。
update my_table
set output = -1
where regexp_like(columnA, '^RS_X')
A 列中值开头为“RS_X”的所有记录将输出中的值设置为 -1。
【讨论】:
您可以使用选择解码和 substr
select decode(substr(columnA, 4,1),'X', -1, columnA) from my_table;
或带有where条件
select -1 from my_table
where substr(columnA, 4,1) = 'X' ;
【讨论】:
使用以下查询获取输出 -
select col1,decode(substr(col1,4,1),'X',-1,1) from test1
输出会像 -
RS_1 1
RS_2 1
RS_3 1
RS_X -1
【讨论】: