【问题标题】:oracle 11g regular expression patternoracle 11g 正则表达式模式
【发布时间】:2016-05-25 19:10:18
【问题描述】:

我有一个 oracle 11g 表。 A列的数据为RS_X、RS_2、RS_3等。

如果 RS_ 之后的数据为“X”,则输出应设置为“-1”。

谁能告诉我我该怎么做。

谢谢 帕万

【问题讨论】:

    标签: sql regex oracle11g


    【解决方案1】:

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

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

    A 列中值开头为“RS_X”的所有记录将输出中的值设置为 -1。

    【讨论】:

      【解决方案2】:

      您可以使用选择解码和 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' ;
      

      【讨论】:

        【解决方案3】:

        使用以下查询获取输出 -

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

        输出会像 -

        RS_1    1
        RS_2    1
        RS_3    1
        RS_X   -1
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-01-09
          • 2017-10-01
          • 1970-01-01
          • 2021-05-22
          • 2017-05-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多