2

隣接する 2 つの文字 (a から z) が同じ大文字と小文字になってはならないという条件があります。に変更helloworldする必要がありHeLlOwOrLd、次のようなクエリを使用しました。

SELECT listagg(jumping_char,'') WITHIN GROUP(ORDER BY rn) jumped_word
FROM
     (SELECT rn,
          CASE
               WHEN mod(rn, 2) = 1
               THEN upper(split_word)
               ELSE lower(split_word)
          END jumping_char
     FROM
          (SELECT regexp_substr('helloworld','.',LEVEL)split_word,
               ROWNUM rn
          FROM dual
               CONNECT BY LEVEL <= LENGTH('helloworld')
          )
     );

hello2worldこれで、 should become のような文字列ができましたHeLlO2wOrLd。単純なさまざまなクエリを歓迎します。事前に感謝します。

4

1 に答える 1